COMPILE_FLAGS和COMPILE_OPTIONS之间的区别

时间:2014-06-19 08:30:09

标签: cmake

之间有什么区别
  

COMPILE_FLAGS:编译此目标来源时使用的其他标志。

  

COMPILE_OPTIONS:传递给编译器的选项列表。

就产生的VS2010解决方案而言,这些命令产生相同的结果:

target_compile_options(target PRIVATE "/option=test1")
set_target_properties(target PROPERTIES COMPILE_FLAGS "/option=test1")
set_target_properties(target PROPERTIES COMPILE_OPTIONS "/option=test1")

2 个答案:

答案 0 :(得分:16)

COMPILE_OPTIONS是一个列表,但COMPILE_FLAGS是一个字符串。

set_target_properties(target PROPERTIES 
    COMPILE_OPTIONS "/option=test1;/option2=test2")
set_target_properties(target PROPERTIES 
    COMPILE_FLAGS "/option=test1 /option2=test2")

您可以更轻松地附加到列表而不是字符串。

此外,COMPILE_OPTIONS已正确转义,而COMPILE_FLAGS中的某些字符可能需要手动转义或导致问题。

答案 1 :(得分:0)

可以用于同一目的,但标志与某些目标环境相关联。因此,您可以为不同的环境使用不同的标志集。