Мне нужно отключить флаг оптимизации для отдельного файла с помощью autotools. Каков наилучший способ сделать это?Каков наилучший способ установки флагов компиляции для отдельных исходных файлов с помощью GCC и autotools?
4
A
ответ
7
Вы имеете в виду отдельный исходный файл или отдельный исполняемый файл?
Чтобы отключить оптимизацию для исполняемого файла прост:
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