问题标签 [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.

0 投票
1 回答
2935 浏览

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")

如何使用预处理器条件来实现这一点?是否有用于编译器或机器架构的预定义宏来说明区别?

0 投票
1 回答
276 浏览

c++ - AIX 的 xlC 上的 CRTDBG_MAP_ALLOC 等效项

我正在尝试检测我的 AIX xlC 编译对象是否存在内存泄漏。使用 Visual Studio 时,如果我包含 CRTDBG_MAP_ALLOC,它会给我一些有关内存泄漏的打印输出信息。xlC 在调试时有类似使用的东西吗?

0 投票
1 回答
771 浏览

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 文件,但这只是按函数名称保存索引,这有点奇怪,

有没有人有同样的经历或知道我在这里做错了什么。

谢谢, 阿尔卡特罗斯

0 投票
2 回答
201 浏览

c++ - 不同的对象指针值及其this指针

基本上,我写了一个类,里面有另一个类数组属性,我的意思是:

所有这些都在一个共享库中实现。

我在第二个库中使用第二类,例如:

在带有 xlC_7 的 64 位编译模式下,virtual在 Aix 系统上运行,没有对齐编译指示、没有优化、没有函数等。

这些是我在两个库中使用的编译器选项:

这些是链接器选项:

当我使用 dbx 调试程序并询问c1.myClass_[0]地址时,我得到了一个值。但是,如果我 straceMyOtherClass.operator=()函数内部的执行,我会得到这个属性指针的另一个地址。

这个问题在 Linux 上不会出现并且工作正常。

任何想法?

0 投票
1 回答
420 浏览

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.

0 投票
1 回答
312 浏览

c++ - obj.template operator() 构造不适用于 xlC 11.1

以下一段 C++ 代码:

使用 IBM 的 xlC 11.1 编译时会导致错误消息:1540-0063 (S) 文本 "operator" is unexpected。如果我使用函数而不是运算符,它可以正常工作,但我不想重写很多库代码。还有其他方法可以使.template operator构造与 xlC 一起使用吗?

0 投票
3 回答
2977 浏览

makefile - GNU make 与 xlc 编译器

希望在这里能有所了解。我有我们的一个项目的源代码,没有关于如何编译的文档,所有编写它的人都离开了:) 我们有一个问题,幸运的 moi 已被派去调查。

目前我正在尝试在 AIX 上构建,makefile 一直在抱怨

或者

CPP选项好像是xlc选项,软件之前编译过很多次。makefile 包含来自 Windows 的控制字符,并且确实有针对某些条目但不是所有 shell 命令的选项卡。

关于在代码上运行 make 可能出现的问题有什么想法吗?我还没有安装 GNU make,这能解决问题吗?

0 投票
1 回答
4957 浏览

c - 如何使用 -bloadmap 或 -bnoquiet 选项?

在 AIX 6.1 上进行 C 编译期间,我收到有关重复符号的警告,它说:

ld: 0711-345 使用 -bloadmap 或 -bnoquiet 选项获取更多信息。

我已经在谷歌上查看了如何使用这些但还没有明确的答案,有人可以告诉我我需要做什么才能使用 -bloadmap 或 -bnoquiet 吗?

谢谢您的帮助 ;-)

林顿

0 投票
1 回答
263 浏览

aix - 在 AIX 上使用 -qnoweakexp 链接

使用 -qnoweakexp 选项链接共享库有哪些优点或缺点?

0 投票
1 回答
294 浏览

c - 是 Unix 编译器太松懈还是 MSVC 2005 缺少技巧?

我遇到了一些这样的 C 代码问题:

Unix 编译器(各种版本的 GCC,以及 AIX 和 HP-UX 上的编译器)都对enum. MSVC 2005 以错误反对C2056: Illegal Expression。根据MSDN,这是因为“由于先前的错误,表达式无效”。这是报告的唯一错误,这有点令人惊讶。

但是,我的问题是:

  1. MSVC 2005 是否准确解释了 C89 标准以禁止enum?
  2. Unix 编译器是否过于慷慨地允许这样做而不发出警告?
  3. C99(或 C2011)有什么不同吗?
  4. 更新版本的 MSVC 是否仍然反对enum?

FWIW:可接受的解决方案是将其更改enum为:


不推荐使用的选项很麻烦

Michael Burr提供了一些非常有价值的额外信息,让我能够解决问题。

可编译示例(与实际问题同构):

MSVC 的精确版本(由 给出cl)是:

这就是迈克尔所说的版本。

而且,我找到了问题的原因。(下面的命令行删除了所有项目特定的花言巧语——示例代码不需要的大量 /D 和 /I 选项。)编译:

上面的代码编译OK。

这首先会生成警告:

一年或更长时间以来,我一直在抱怨使用不推荐使用的选项进行编译,但负责这个子项目的团队中没有人愿意站出来修复它,我不应该——即将改变的事情。

然后它说:

因此,不仅该/Zg选项已被弃用,而且它也是造成问题的首要原因。现在我有更好的弹药来追击人了!

感谢您提供额外的信息,迈克尔。

PS:关于 MSDN 页面/Zg说:

如果您使用该/Zg选项并且您的程序包含具有 、 或 类型(或指向此类类型的指针)的形式参数,则struct每个enumunion或 类型的声明都struct必须enum具有union标记(名称)。

这并不完全准确。示例片段中没有形式参数,并且这些enum值从未传递给函数。但是如果没有 上的标签enum,错误仍然会与/Zg标志一起出现。


(不;我并不是特别喜欢 MSVC 2005。我工作的小组还没有升级到任何更新的版本。大多数情况下它不会影响我。在某些情况下,像这样,当它很痛时。有一天,我会弄清楚为什么 Windows 上的其他构建似乎接受enum. )

这是严格的 C 代码。MSVC 标记是 Visual-C++ 标记的同义词。