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

我试图在项目CMakeLists.txt的顶部文件夹中使用类似的内容。

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

但是运行CMake文件会发送与自动变量和模板类型变量精确相关的各种错误。
我究竟做错了什么?

最佳答案

也许有些地方可以覆盖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")

关于c++ - 将标志 “-fno-implicit-templates”添加到CMake文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31993423/

10-11 23:01
查看更多