之间有什么区别
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")
答案 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)
可以用于同一目的,但标志与某些目标环境相关联。因此,您可以为不同的环境使用不同的标志集。