Я разрабатываю C/C++ с помощью Eclipse IDE. Eclipse также генерирует make-файл, который я не хочу редактировать, поскольку он будет просто перезаписан.
Я хочу использовать тот make-файл для ночной сборки в Гудзоне.
Как я передаю #defines, которые сделаны в файле проекта IDE к make-файлу? (и почему Eclipse уже не включает их в сгенерированный make-файл?)
Мне на самом деле выяснили это однажды, затем случайно перезаписал его :-( Но по крайней мере я знаю, что это может быть сделано...
Если вы работаете из командной строки, используйте
make CPPFLAGS=-DFOO
, которые будут добавлять -dfoo на все компиляции. См. Также CFLAGS, CXXFLAGS, LDFLAGS в ручном руководстве.
Идея, лежащая в основе грамотного программирования, заключается в уделении особого внимания документации, с кодом, просочившимся через документацию, а не комментариям, просочившимся через код.
Это существенно другая философия, и различия, такие как более длинные имена переменных, пространства имен и классы, не влияют на философию. Грамотное программирование пропагандирует значимые имена переменных.
Оно масштабируется до более крупных систем, потому что базовое отношение документации к коду масштабируется линейно с размером кода.
-121--2339103- Для GCC используйте -D define.
OP прокомментировал ниже, что он хочет передать определение в make и передать его в GCC.
Make не допускает этого. Как правило, добавляется еще одно правило создания для добавления определений. Например, «make release» vs «make debug». Как создатель makefile вы делаете два правила и имеют определение право в файле make. Теперь, если Eclipse не помещает определения в файл макияжа для вас, я бы сказал, Eclipse сломан.
-121--2534021- Вы можете написать небольшую программу, чтобы включить заголовки и написать фрагмент makefile, который вы включите
в основной makefile (требуется GNU make).
Это довольно уродливое решение, которое требует изрядного количества взлома рук. Более элегантным было бы разобрать файл проекта и написать фрагмент makefile.
Идея грамотного программирования - это акцент на документации, с кодом, посыпанным через документацию, а не комментарии, посыпанные через код.
Это существенно другая философия, а различия, такие как более длинные имена переменных, пространства имен и классы, не влияют на философию. Грамотное программирование защищает значимые имена переменной.
Это масштабируется до более крупных систем, поскольку основное соотношение документации к кодам масштабируется линейно с размером кода.
-121--2339103- для использования GCC -D определяют.
OP прокомментировал ниже, что он хочет пройти определить, и он передает его GCC.
Сделать не допускает этого. Обычно вы просто добавляете другое правило, чтобы добавить определить. Например, «сделать релиз» против «сделать отладку». Как создатель Makefile, вы делаете два правила и имеете определение прямо в файле Make. Теперь, если Eclipse не вкладывает определить в Makefile для вас, я бы сказал, что затмение сломано.