макрос, переданный из компиляции, не может быть разрешен в 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»

Только что проверил, работает.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]