gpt4 book ai didi

c++ - 在 AIX 7.1 xlc++ 上编译静态模板函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:09:24 24 4
gpt4 key购买 nike

我们的源代码有一堆独立的静态模板函数。我需要使用 IBM 的原生 xlc++ 编译器在 AIX 7.1 Power 7 系统上编译它。将 static 关键字与独立函数一起使用是过时的做法,并且 xlc++ 不支持它,因此为了编译我的程序,我从函数声明中删除了该关键字。程序编译成功后,第一次运行就崩溃了(在Linux/g++上,输入数据完全稳定)。

我尝试使用 dbx 进行调试,但调试器提示 internal errorextend_brk 中的段错误。没有使用内存配额,所以这不是内存/磁盘空间不足。系统配置为创建完整的核心转储,使用 -g 选项编译程序。所有的库都是静态链接的,所以在共享库中抛出异常不是问题。 1) 是否可以在不删除static 关键字的情况下在xlc++ 上编译静态模板函数,所以我可以确定所有代码都与RHEL 系统中的代码相同? 2) 为什么调试器不工作?

最佳答案

看来我有 32/64 位的可移植性问题,在这种情况下删除 static 关键字是无害的。在我的 .kshrc 文件中添加以下行后,问题就消失了:

export OBJECT_MODE=64

默认情况下,IBM XL 编译器以 32 位模式运行,即使在 64 位 AIX 7.1 系统上也是如此。要覆盖默认行为,程序员可以设置环境变量或向编译器提供 -q64 参数。

关于c++ - 在 AIX 7.1 xlc++ 上编译静态模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com