IBM XL C/C++编译器:使用预处理器指令检查编译器模式
我正在尝试在 AIX 系统上使用 IBM xlC 编译器编译示例 c++ 文件 test.cpp
。该文件应在 32 位和 64 位模式下编译。我使用以下命令在两种模式下编译它们:
xlC test.cpp
(默认编译器模式为 32 位)
xlC -q64 test.cpp
在 test 下.cpp
,如果编译 32 位,我必须 printf(“使用 32 位编译器”)
和 printf(“使用 64 位编译器”)
如果编译为 64 位。
如何使用预处理器条件来实现此目的?是否有一个针对编译器或机器体系结构的预定义宏可以区分?
I am trying to compile a sample c++ file test.cpp
using IBM xlC compiler on AIX system. The file should be compiled in both 32-bit and 64-bit modes. I am using following commands to compile them in both modes:
xlC test.cpp
(default compiler mode is 32-bit)
xlC -q64 test.cpp
Under test.cpp
, I have to printf("Using 32-bit compiler")
if compiling for 32-bit and printf("Using 64-bit compiler")
if compiling for 64-bit.
How can I achieve this using preprocessor conditionals? Is there a pre-defined macro either for compiler or for machine architecture that tells the difference?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 XLC 中,如果您使用
-q64
标志,则会定义宏__64BIT__
。直接来自 IBM XL C/C++ 的文档:
in XLC, if you are using the
-q64
flag, the macro__64BIT__
is defined.Straight from IBM XL C/C++'s documentation: