将标志"-fno-implicit-templates"添加到 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和模板类型变量相关的错误。我做错了什么?

可能在其他地方有东西覆盖了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")

最新更新