gpt4 book ai didi

cmake - 使用 CMake 添加不在子目录中的依赖项

转载 作者:行者123 更新时间:2023-12-03 13:48:09 24 4
gpt4 key购买 nike

假设有以下目录结构:

root
|
+--projects
| |
| +-test
| |
| +-CMakeFiles.txt
|
+--libs
|
+-testlib
|
+-CMakeFiles.txt
test包含 CMakeFiles.txttestlib还包含 CMakeFiles.txt . “test”产生一个可执行文件,“teSTLib”产生一个静态库。

我希望“test”与“teSTLib”链接而不使用符号链接(symbolic link),也不需要将“teSTLib”库移动到“test”中的子目录中。

因为“teSTLib”不是“test”的子目录,所以我做不到
add_subdirectory("../../libs/testlib")

在测试的 CMakeFiles.txt - CMake 将提示“teSTLib”不在“test”子目录中。

另外,因为系统有几个不同的编译器,我不能简单地将“teSTLib”库安装到某种中央目录中,所以我想要 test编译 testlib 的本地副本并与之链接(即好像 testlib 是一个子目录)。我还希望“test”项目在更改后自动重建“teSTLib”。

那么,我该如何处理呢?我在 Windows XP SP3 上使用 CMake 2.8.4。

最佳答案

您可以在 root 中提供顶级 CMakeLists.txt , 或提供一个二进制目录到 add_subdirectory命令;例如

add_subdirectory("../../libs/testlib" "${CMAKE_CURRENT_BINARY_DIR}/testlib_build")

这将创建一个名为 testlib_build 的子目录。在您当前的构建目录中,该目录包含为 teSTLib 生成的项目文件,但不包含源代码。

有关更多信息,请运行
cmake --help-command ADD_SUBDIRECTORY

关于cmake - 使用 CMake 添加不在子目录中的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10004134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com