1

я испытываю технические трудности с директивами препроцессора:Препроцессоры директивы не имеют никакого эффекта

#ifdef, #define 

У меня есть программа, построенная в Makefile, и у меня есть 2 варианта два построить его: автономный или встроенный.
я сделал что-то вроде:

#ifdef _mdimode_ 
    //code for embedded 
#else 
    //code for standalone (default) 
#endif 

И в моем главном файле при компиляции во вложенных целях я написал:

#define _mdimode_ 

Но, похоже, что г ++ не распознает или понять его. Он всегда идет в другом и никогда не компилирует код для встроенной версии.

Информация:
GNU Make 3,82
г ++ (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
суффикс файла: .C

ответ

1

Это немного догадке без дополнительной информации. Я предполагаю, что код находится в другом файле, кроме основного файла. Если это так, то #define не распространяется на эту часть проекта. Вам нужно будет установить его в файле, который содержит код, или в заголовке #include d.

Вы также можете установить #define в настройках команды компиляции:

g++ -c -D_mdimode_ mycode.C 

 Смежные вопросы

  • Нет связанных вопросов^_^