我的项目根目录中有一个CMakeLists.txt,而我的/ src文件夹中有一个 . / src文件夹中的那个只包含一个带有.cpp文件的变量( set (SOURCEFILES main.cpp foo.cpp)
),而在根CMakeLists.txt中我做了 add_subdirectory(src)
,后来我做了 add_executable(MyApp ${SOURCEFILES})
.
但是cmake给了我错误
调用add_executable,参数数量不正确,未提供任何来源
如何让cmake查看变量?我读到cmake只知道全局变量,但显然情况并非如此......
1 回答
如set命令的文档中所述,每个添加了
add_subdirectory
的目录或使用function
声明的每个函数都会创建一个新范围 .新的子范围从其父范围继承所有变量定义 . 除非使用
PARENT_SCOPE
选项,否则使用set
命令的新子作用域中的变量赋值将仅在子作用域中可见 .要使
SOURCEFILES
赋值在项目的根文件夹中可见,请尝试: