Каков наилучший способ установить флаги компиляции для отдельных исходных файлов с помощью GCC и автоинструментов? - PullRequest
4 голосов
/ 08 февраля 2010

Мне нужно отключить флаг оптимизации для отдельного файла с помощью автоинструментов. Каков наилучший способ сделать это?

1 Ответ

7 голосов
/ 09 февраля 2010

Вы имеете в виду отдельный исходный файл или отдельный исполняемый файл?

Отключить оптимизацию для исполняемого файла просто:

bin_PROGRAMS = myprog
myprog_SOURCES = foo.c bar.c
myprog_CFLAGS = -O0

Если вы имеете в виду, что вы хотите отключить оптимизацию для одного исходного файла временно , скажем, в целях отладки, вы можете просто переделать этот файл в командной строке: (пример из руководства по automake)

rm bar.o
make CFLAGS=-O0 bar.o
make

Сделать это для отдельного исходного файла навсегда не так просто, и, вероятно, лучше всего это сделать, создав вспомогательную библиотеку:

noinst_LIBRARIES = libnoopt.a
libnoopt_a_SOURCES = bar.c
libnoopt_a_CFLAGS = -O0

bin_PROGRAMS = myprog
myprog_SOURCES = foo.c
myprog_CFLAGS = -O2
myprog_LDADD = libnoopt.a
...