Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake COMPILE_标志和COMPILE_选项之间的区别_Cmake - Fatal编程技术网

Cmake COMPILE_标志和COMPILE_选项之间的区别

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

两者的区别是什么

编译_标志:编译此目标的源代码时要使用的其他标志

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

对于生成的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")

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

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标志
中的某些字符可能需要手动转义,否则会导致问题。

我更想知道的是目标属性本身之间的差异,而不是如何设置它们。问题编辑我不知道你错过了什么。设置属性的方式不影响一个是字符串,另一个是列表这一事实。答案也被编辑了。