Макрос, переданный из компиляции, не может быть разрешен в Eclipse
Я пытаюсь передать определенный макрос в мою программу во время компиляции следующим образом:
#include <stdio.h>
int main() {
// KEY_CNT is not defined in program but passed at compile time
printf("KEY_CNT: %d", KEY_CNT);
return 0;
}
и скомпилировать с g++ -DKEY_CNT=2 -O2 test_3.cpp -o test_3
и он работает, как и ожидалось, но проблема в том, что Eclipse не может решить 'KEY_CNT'. Это просто игрушечный пример, в моей оригинальной программе много ложных ошибок, подобных этой с красными линиями, действительно раздражают.
Я думаю, что Eclipse может потребоваться уведомление о моей опции компиляции, чтобы он знал, что 'KEY_CNT' определен, поэтому я добавляю -DKEY_CNT=2
в Properties -> C/C++ Build -> Settings -> GCC C++ Compiler -> Miscellaneous
, но это все еще не работает.
Любой совет, чтобы решить это?
======== добавлено ========
Версия Eclipse: Eclipse IDE для разработчиков на C/C++, Luna Service Release 2 (4.4.2)
1 ответ
Свойства -> Сборка C/C++ -> Настройки -> Компилятор GCC C++ -> Разное
Не то место.
Должно быть "C/C++ Build -> Settings -> GCC C++ Compiler -> Preprocessor"
Только что проверил, работает.