4

我正在为一个项目编写 CMakeLists.txt,遇到了 set_source_files_properties 的问题。

原来的工作表达式是:

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR1="/home/xxx/b.i")

然后我尝试添加更多的 COMPILE_DEFINITIONS,但失败了。

尝试1:

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR1="/home/xxx/b.i" DIR2="/home/xxx/c.i" DIR3="/home/xxx/d.i")

尝试2:

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR1="/home/xxx/b.i")
set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR2="/home/xxx/c.i")
set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR3="/home/xxx/d.i")

结果:make编译时a.cpp中只能识别最后一个定义的DIR3,前两个在make阶段报告未定义。

有什么建议么?

谢谢!

4

3 回答 3

14

这些set_*_properties()函数是基本用法的简写。对于“高级”情况,最好使用 的全部功能set_property()

set_property(
  SOURCE a.cpp
  APPEND
  PROPERTY COMPILE_DEFINITIONS
  DIR1="/home/xxx/b.i" DIR2="/home/xxx/c.i" DIR3="/home/xxx/d.i"
)
于 2013-01-07T09:07:40.737 回答
3

我设法使用以下命令提供了几个COMPILE_DEFINITIONS使用:set_source_files_properties

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    "DIR1=\"/home/xxx/b.i\";DIR2=\"/home/xxx/c.i\";DIR3=\"/home/xxx/d.i\")"

来源:https ://cmake.org/cmake/help/v3.5/prop_sf/COMPILE_DEFINITIONS.html

于 2016-12-05T16:17:58.437 回答
-4

该问题已通过以下方式解决:

add_definitions (-DDIR1="/home/xxx/b.i") 
add_definitions (-DDIR2="/home/xxx/C.i") 
add_definitions (-DDIR3="/home/xxx/D.i")
于 2013-01-08T02:44:54.830 回答