2015-06-01 2 views
1

Я не очень опытен с файлами make и пытаюсь определить переменную препроцессора в моем файле make, в Eclipse (linux).make file preprocessor директива

Он поворачивает вверх нетривиальное задачу, так как это, кажется, я что-то не хватает ...

Ниже вы можете найти структуру моего сделать файла:

var_first=g++ 

all: 

    g++ main_cell.cpp -o hello 

таким образом я строю свой код, что я хочу сделать, это определить переменную в моих файлах make, которые затем будут утверждаться с # ifdef, # endif в моем коде.

Я прошел через многочисленные комбинации, но не хватает некоторых шагов, как это кажется ...

Не могли бы вы дать некоторые указатели?

ответ

1

Если вы хотите передать переменную препроцессора непосредственно компилятору, вы используете флаг -D.

E.g. вы хотите определить переменную PRE_MY_VAR в 1, вы можете написать:

g++ -o myexecutable *.cpp -DPRE_MY_VAR=1 

Так что в вашем Makefile это будет:

all: 
    g++ main_cell.cpp -o hello -Dvar_first="g++" 
+0

спасибо большое, очень полезно! –

1

Чтобы добавить определение во время компиляции, используйте г ++ вариант -D. Как это:

g++ -DMyDefine=123 main_cell.cpp -o hello 

Сейчас в main_cell.cpp вы можете сделать:

#if MyDefine == 123 
    doStuff(); 
#endif 

Чтобы использовать Makefile переменные для этого, сделать что-то вроде:

all: g++ main_cell.cpp -o hello -Dvar_first=$(var_first) 

То есть эквивалент #define var_first g++ в. cpp файл

+0

большое спасибо !!! –