使用GCC和autotools为各个源文件设置编译标志的最佳方法是什么?

时间:2010-02-08 10:22:04

标签: makefile autotools autoconf automake

我需要使用autotools为单个文件禁用优化标志。 最好的方法是什么?

1 个答案:

答案 0 :(得分:7)

您的意思是单个源文件还是单个可执行文件?

要禁用可执行文件的优化很简单:

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

如果您要为单个源文件暂时禁用优化,例如出于调试目的,您可以在提示符下重新生成该文件:(来自automake手册的示例)< / p>

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