收集图书馆 我使用CMake来构建一个简单的C++项目,以下命名为“强> P
我想收集package1,package2。。。在一个名为P_LIBS的变量中 在第一次尝试中,我尝试收集package1、package2。。。在名为P_LIBS的变量中,最初在src/CMakeLists.txt文件中设置。但是,子文件夹的CMakeLists.txt中对P_LIBS的更新不会传播到父文件夹 我不希望在主CMakeLists.txt文件中编写库列表。我宁愿在目录树中移动时修改这样的变量 在网上搜索之后,我找不到任何有效的建议。如果我查看各种Find文件,我只会在它们的主CMakeLists.txt文件中看到库的长列表 有没有办法做到我上面解释的(我希望如此)呢收集图书馆 我使用CMake来构建一个简单的C++项目,以下命名为“强> P,cmake,Cmake,我想收集package1,package2。。。在一个名为P_LIBS的变量中 在第一次尝试中,我尝试收集package1、package2。。。在名为P_LIBS的变量中,最初在src/CMakeLists.txt文件中设置。但是,子文件夹的CMakeLists.txt中对P_LIBS的更新不会传播到父文件夹 我不希望在主CMakeLists.txt文件中编写库列表。我宁愿在目录树中移动时修改这样的变量 在网上搜索之后,我找不到任何有效的建议。如果我查看各种Find文件,我只会在它们的主CMa
由于sakra的链接,我能够将名称“传播”到父文件夹。但是,我添加到P_LIBS变量中的名称后来被解释为“库”名称,而不是对CMake目标的引用。换句话说,如果
P_LIBS = {a, b}
“a”和“b”被解释为库名称,即CMake生成:
gcc [...] -l a -o exe
而不是
gcc [...] /path/to/a.o -o exe
(.o或其他扩展名)您可能正在将目标列表构建为字符串,请尝试将其设置为列表。例如:
# in package1/CMakeLists.txt
set(P_LIBS ${P_LIBS} a b PARENT_SCOPE)
您能否共享相关的
CMakeLists.txt
文件?(特别是,如何包含其他cmake文件,是通过包含
还是添加_子目录
?您应该查看此处提供的答案:另请参见