Помимо создания строки компиляции из Общие предопределенные макросы , что кажется суете. Я думаю, что есть простой способ сделать это. gcc -V
на debian возвращает флагов, используемых для настройки.
Однако мой выстрел состоял бы в том, чтобы получить полную команду в эквивалентном шаге ./configure
и выгрузить его в файл, например config_line.h, в качестве определения.
Что-то вроде:
./configure:
#!/bin/sh
echo "#define conf_flags \"configured with: "$*"\"" >> config_line.h
#do some configuration steps here
#maybe even compilation itself
Тогда:
luk32:~/projects/tests$ ./test.sh --with=test
luk32:~/projects/tests$ cat ./config_line.h
#define conf_flags "configured with: --with=test"
Вы получаете полную линию конфигурации, определенный во внешнем файле под определения заявления. Я думаю, что он довольно прост и прост в использовании. И не нужно много магии компилятора.
Также стоит отметить, что вы можете, скорее всего, (если не всегда) создавать такие файлы непосредственно перед фактической компиляцией, чтобы они были на самом деле актуальными и действительными на этапе компиляции. Ответ в get-the-compiler-options-from-a-compiled-executable означает, что исполняемый файл уже существует, что может быть обломком в некоторых случаях.
Примечание: Я дал Баш пример, но я уверен, что вы можете вывести аналогичный файл заголовка под любой половины спуска системы сборки, будь это сделать, QMAKE, CMake и т.д. Баш начать простейший случай.
Я думаю, что большинство из них имеют доступ к командной строке, с которой они вызывают, а также обеспечивают простой способ получить фактическую команду компиляции. Например, чтобы предоставить два литерала, один с командами, используемыми для make как -j 13
, а другой g++ ...
, используемый для фактического этапа компиляции, выполненного make.
Note2: Я знаю, что это не ответ, который задал ОП, но я полагаю, что он служит его цели в 1-м месте.
смотрите здесь http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html –
Если вам удобно указывать опцию перед сборкой, это поможет: http: // stackoverflow. com/questions/12112338/get-the-compiler-options-from-a-compiled-executable – jogojapan
@ AndreasGrapentin О, я вижу. Возможно, я неправильно понял этот вопрос.Но если это так, вы можете легко составить ответ на основе информации из предоставленной вами ссылки. – jogojapan