问题标签 [xlc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - IBM XL C/C++ 编译器:使用预处理器指令检查编译器模式
我正在尝试test.cpp
在 AIX 系统上使用 IBM xlC 编译器编译示例 c++ 文件。该文件应在 32 位和 64 位模式下编译。我正在使用以下命令在两种模式下编译它们:
xlC test.cpp
(默认编译器模式为 32 位)
xlC -q64 test.cpp
在下,如果编译为 32 位,如果编译为 64 位test.cpp
,我必须这样做。printf("Using 32-bit compiler")
printf("Using 64-bit compiler")
如何使用预处理器条件来实现这一点?是否有用于编译器或机器架构的预定义宏来说明区别?
c++ - AIX 的 xlC 上的 CRTDBG_MAP_ALLOC 等效项
我正在尝试检测我的 AIX xlC 编译对象是否存在内存泄漏。使用 Visual Studio 时,如果我包含 CRTDBG_MAP_ALLOC,它会给我一些有关内存泄漏的打印输出信息。xlC 在调试时有类似使用的东西吗?
c++ - gprof 输出问题
问题是:为什么我的 gprof 输出只显示 "Index by function name" ?
我在本教程的支持下编译了我的应用程序:http: //ececmpsysweb.groups.et.byu.net/cmpsys.2004.winter/citizenship/Bryan_Wheeler/Profiling_Tutorial.html
所以我的应用程序是用 -p -pg 编译的
在我使用 ./application 运行我的应用程序后,它会创建 mon.out 文件,但这只是按函数名称保存索引,这有点奇怪,
有没有人有同样的经历或知道我在这里做错了什么。
谢谢, 阿尔卡特罗斯
c++ - 不同的对象指针值及其this指针
基本上,我写了一个类,里面有另一个类数组属性,我的意思是:
所有这些都在一个共享库中实现。
我在第二个库中使用第二类,例如:
在带有 xlC_7 的 64 位编译模式下,virtual
在 Aix 系统上运行,没有对齐编译指示、没有优化、没有函数等。
这些是我在两个库中使用的编译器选项:
这些是链接器选项:
当我使用 dbx 调试程序并询问c1.myClass_[0]
地址时,我得到了一个值。但是,如果我 straceMyOtherClass.operator=()
函数内部的执行,我会得到这个属性指针的另一个地址。
这个问题在 Linux 上不会出现并且工作正常。
任何想法?
c++ - Loop optimization by the IBM xlC compiler with Altivec
I was just playing around with the Altivec extension on a power6 cluster we have. I noticed that when I compiled the code below without any optimizations, my speedup was 4 as I was expecting. However, when I compiled it again with the -O3 flag, I managed to obtain a speedup of 60!
Just wondering if anyone has more experience with this and is able to provide some insight into how the compiler is rearranging my code to perform such a speedup. Is the only possible optimization through assembly and instruction pipelining here, or is there something else I am missing that I can include in my future work.
c++ - obj.template operator() 构造不适用于 xlC 11.1
以下一段 C++ 代码:
使用 IBM 的 xlC 11.1 编译时会导致错误消息:1540-0063 (S) 文本 "operator" is unexpected。如果我使用函数而不是运算符,它可以正常工作,但我不想重写很多库代码。还有其他方法可以使.template operator
构造与 xlC 一起使用吗?
makefile - GNU make 与 xlc 编译器
希望在这里能有所了解。我有我们的一个项目的源代码,没有关于如何编译的文档,所有编写它的人都离开了:) 我们有一个问题,幸运的 moi 已被派去调查。
目前我正在尝试在 AIX 上构建,makefile 一直在抱怨
或者
CPP选项好像是xlc选项,软件之前编译过很多次。makefile 包含来自 Windows 的控制字符,并且确实有针对某些条目但不是所有 shell 命令的选项卡。
关于在代码上运行 make 可能出现的问题有什么想法吗?我还没有安装 GNU make,这能解决问题吗?
c - 如何使用 -bloadmap 或 -bnoquiet 选项?
在 AIX 6.1 上进行 C 编译期间,我收到有关重复符号的警告,它说:
ld: 0711-345 使用 -bloadmap 或 -bnoquiet 选项获取更多信息。
我已经在谷歌上查看了如何使用这些但还没有明确的答案,有人可以告诉我我需要做什么才能使用 -bloadmap 或 -bnoquiet 吗?
谢谢您的帮助 ;-)
林顿
aix - 在 AIX 上使用 -qnoweakexp 链接
使用 -qnoweakexp 选项链接共享库有哪些优点或缺点?
c - 是 Unix 编译器太松懈还是 MSVC 2005 缺少技巧?
我遇到了一些这样的 C 代码问题:
Unix 编译器(各种版本的 GCC,以及 AIX 和 HP-UX 上的编译器)都对enum
. MSVC 2005 以错误反对C2056: Illegal Expression
。根据MSDN,这是因为“由于先前的错误,表达式无效”。这是报告的唯一错误,这有点令人惊讶。
但是,我的问题是:
- MSVC 2005 是否准确解释了 C89 标准以禁止
enum
? - Unix 编译器是否过于慷慨地允许这样做而不发出警告?
- C99(或 C2011)有什么不同吗?
- 更新版本的 MSVC 是否仍然反对
enum
?
FWIW:可接受的解决方案是将其更改enum
为:
不推荐使用的选项很麻烦
Michael Burr提供了一些非常有价值的额外信息,让我能够解决问题。
可编译示例(与实际问题同构):
MSVC 的精确版本(由 给出cl
)是:
这就是迈克尔所说的版本。
而且,我找到了问题的原因。(下面的命令行删除了所有项目特定的花言巧语——示例代码不需要的大量 /D 和 /I 选项。)编译:
上面的代码编译OK。
这首先会生成警告:
一年或更长时间以来,我一直在抱怨使用不推荐使用的选项进行编译,但负责这个子项目的团队中没有人愿意站出来修复它,我不应该——即将改变的事情。
然后它说:
因此,不仅该/Zg
选项已被弃用,而且它也是造成问题的首要原因。现在我有更好的弹药来追击人了!
感谢您提供额外的信息,迈克尔。
PS:关于 MSDN 页面/Zg
说:
如果您使用该
/Zg
选项并且您的程序包含具有 、 或 类型(或指向此类类型的指针)的形式参数,则struct
每个enum
、union
或 类型的声明都struct
必须enum
具有union
标记(名称)。
这并不完全准确。示例片段中没有形式参数,并且这些enum
值从未传递给函数。但是如果没有 上的标签enum
,错误仍然会与/Zg
标志一起出现。
(不;我并不是特别喜欢 MSVC 2005。我工作的小组还没有升级到任何更新的版本。大多数情况下它不会影响我。在某些情况下,像这样,当它很痛时。有一天,我会弄清楚为什么 Windows 上的其他构建似乎接受enum
. )
这是严格的 C 代码。MSVC 标记是 Visual-C++ 标记的同义词。