在automake / gcc中混合使用C ++ 98和C ++ 11源代码

时间:2014-11-13 10:08:06

标签: c++ c++11 gcc autoconf automake

我在项目中有一个使用automake工具构建的cpp文件列表。

其中一些是使用pre-C ++ 11标准(即C ++ 98)编写的,它们无法使用gcc的c ++ 11标志进行编译(-std = c ++ 11)。

最新的cpp文件使用的是C ++ 11标准,它们在编译时需要-std = c ++ 11标志。

我可以在Automake中定义两个cpp源文件列表并给出不同的编译标志吗?

1 个答案:

答案 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