Компилятор IBM XL C/C ++: Проверьте режим компилятора с помощью директивы препроцессора

StackOverflow https://stackoverflow.com/questions/4536896

  •  13-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь собрать образец файла c ++ test.cpp Использование компилятора IBM XLC в системе AIX. Файл должен быть скомпилирован как в 32-битных, так и в 64-битных режимах. Я использую следующие команды, чтобы скомпилировать их в обоих режимах:

xlC test.cpp (Режим компилятора по умолчанию 32-битный)

xlC -q64 test.cpp

Под test.cpp, Я должен printf("Using 32-bit compiler") При составлении 32-битного и printf("Using 64-bit compiler") Если компиляция для 64-битных.

Как я могу достичь этого, используя препроцессорные условия? Есть ли предварительно определенный макрос либо для компилятора, либо для архитектуры машины, который рассказывает разницу?

Это было полезно?

Решение

в XLC, если вы используете -q64 флаг, макрос __64BIT__ определено.

Прямо от Документация IBM XL C/C ++:

Если компилятор вызывается в 64-битном режиме, то __64BIT__ Предварительный макрос определен.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top