我在项目中有一个使用automake工具构建的cpp文件列表。
其中一些是使用pre-C ++ 11标准(即C ++ 98)编写的,它们无法使用gcc的c ++ 11标志进行编译(-std = c ++ 11)。
最新的cpp文件使用的是C ++ 11标准,它们在编译时需要-std = c ++ 11标志。
我可以在Automake中定义两个cpp源文件列表并给出不同的编译标志吗?
答案 0 :(得分:2)
这是直接从Setting per-file flags with automake
撕掉的您可以将c ++ 11代码捆绑到lib中,并在Makefile.am中为此代码子集提供不同的标志
bin_PROGRAMS = test
test_SOURCES = main.cpp
test_LDADD = c11code.la
noinst_LTLIBRARIES = c11code.la
c11code_la_SOURCES = cxx1_1.cpp cxx1_2.cpp cxx1_3.cpp
c11code_la_CXXFLAGS = $(CXXFLAGS) -std=c++11