添加标志" -fno-implicit-templates"到CMake文件

时间:2015-08-13 16:12:36

标签: c++ templates makefile cmake

我制作了一个使用auto来推导模板类型的程序。这个程序是用C ++ 11编译的,使用Make文件(按预期工作),但我需要将程序加入一个使用CMake文件的更大的程序。

我尝试在项目的CMakeLists.txt的顶层文件夹中使用这样的东西。

SET(CMAKE_CXX_FLAGS "-std=gnu++11")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-implicit-templates ")

但是运行CMake文件会发送与auto和模板类型变量完全相关的各种错误。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

也许某些事情会覆盖其他地方的CMAKE_CXX_FLAGS。尝试在每个目标的基础上设置编译标志,例如使用target_compile_options(对于CMake 3.x):

target_compile_options(your_target "-std=gnu++11" "-fno-implicit-templates")

set_property如果您使用的是CMake 2.8.x:

set_property(TARGET your_target APPEND_STRING PROPERTY
             COMPILE_FLAGS " -std=gnu++11 -fno-implicit-templates")