Я пытаюсь передать определенный макрос в мою программу во время компиляции следующим образом:
#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)
Свойства -> Сборка C / C ++ -> Настройки -> Компилятор GCC C ++ -> Разное
Не то место.
Должно быть «C / C ++ Build -> Settings -> GCC C ++ Compiler -> Preprocessor»
Только что проверил, работает.
Других решений пока нет …