Cmake COMPILE_标志和COMPILE_选项之间的区别
两者的区别是什么 编译_标志:编译此目标的源代码时要使用的其他标志 及 编译选项:要传递给编译器的选项列表 对于生成的VS2010解决方案,这些命令产生相同的结果:Cmake COMPILE_标志和COMPILE_选项之间的区别,cmake,Cmake,两者的区别是什么 编译_标志:编译此目标的源代码时要使用的其他标志 及 编译选项:要传递给编译器的选项列表 对于生成的VS2010解决方案,这些命令产生相同的结果: target_compile_options(target PRIVATE "/option=test1") set_target_properties(target PROPERTIES COMPILE_FLAGS "/option=test1") set_target_properties(target PROPERTIES C
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")
可用于同一目的,但标志与某些目标环境相关联。因此,您可以为不同的环境使用不同的标志集。
COMPILE\u OPTIONS
是一个列表,而COMPILE\u标志
是一个字符串
set_target_properties(target PROPERTIES
COMPILE_OPTIONS "/option=test1;/option2=test2")
set_target_properties(target PROPERTIES
COMPILE_FLAGS "/option=test1 /option2=test2")
附加到列表比附加到字符串更容易
另外,
COMPILE\u选项
被正确转义,而COMPILE\u标志
中的某些字符可能需要手动转义,否则会导致问题。我更想知道的是目标属性本身之间的差异,而不是如何设置它们。问题编辑我不知道你错过了什么。设置属性的方式不影响一个是字符串,另一个是列表这一事实。答案也被编辑了。