【问题标题】:IBM XL C/C++ Compiler: check compiler mode using preprocessor directiveIBM XL C/C++ 编译器:使用预处理器指令检查编译器模式
【发布时间】:2010-12-27 14:27:11
【问题描述】:

我正在尝试在 AIX 系统上使用 IBM xlC 编译器编译示例 c++ 文件test.cpp。该文件应在 32 位和 64 位模式下编译。我正在使用以下命令在两种模式下编译它们:

xlC test.cpp(默认编译模式为 32 位)

xlC -q64 test.cpp

test.cpp下,如果编译为32位,我必须printf("Using 32-bit compiler"),如果编译为64位,我必须printf("Using 64-bit compiler")

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

【问题讨论】:

    标签: c++ compiler-construction xlc


    【解决方案1】:

    在 XLC 中,如果您使用 -q64 标志,则定义宏 __64BIT__

    直接来自IBM XL C/C++'s documentation

    如果在 64 位模式下调用编译器,则定义 __64BIT__ 预处理器宏。

    【讨论】:

    • 非常感谢。 __64BIT__ 由我的编译器#定义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 2011-02-24
    • 1970-01-01
    相关资源
    最近更新 更多