加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cmake:添加依赖关系不在子目录中

发布时间:2020-12-13 20:11:14 所属栏目:百科 来源:网络整理
导读:假设有以下目录结构: root | +--projects | | | +-test | | | +-CMakeFiles.txt | +--libs | +-testlib | +-CMakeFiles.txt 测试包含CMakeFiles.txt,testlib也包含CMakeFiles.txt. “test”生成可执行文件,“testlib”生成静态库. 我想要“测试”链接“test
假设有以下目录结构:
root
  |
  +--projects
  |      |
  |      +-test
  |         |
  |         +-CMakeFiles.txt
  |
  +--libs
       |
       +-testlib
            |
            +-CMakeFiles.txt

测试包含CMakeFiles.txt,testlib也包含CMakeFiles.txt. “test”生成可执行文件,“testlib”生成静态库.

我想要“测试”链接“testlib”而不使用符号链接,而不要将“testlib”库移动到“test”中的子目录中.

因为“testlib”不是“test”的子目录,所以我不能做

add_subdirectory("../../libs/testlib")

在测试的CMakeFiles.txt中 – cmake将抱怨“testlib”不在“test”子目录中.

另外,因为系统有几个不同的编译器,所以我不能简单地将“testlib”库安装到某种中央目录中,所以我想要测试来编译testlib的本地副本并与之链接(就好像testlib是一个子目录).如果已经更改,我也希望“测试”项目自动重建“testlib”.

那么我该怎么处理呢? cmake 2.8.4,winxp sp3.

您可以在根目录中提供顶级的CMakeLists.txt,或者为add_subdirectory命令提供一个二进制目录;例如
add_subdirectory("../../libs/testlib" "${CMAKE_CURRENT_BINARY_DIR}/testlib_build")

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

有关更多信息,请运行

cmake --help-command ADD_SUBDIRECTORY

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读