首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装(目标...)和add_subdirectory

安装(目标...)和add_subdirectory
EN

Stack Overflow用户
提问于 2010-08-23 20:07:46
回答 1查看 9.1K关注 0票数 22

是否可以使用install(TARGETS ...)使用在使用add_subdirectory添加的目录中定义的目标?

我的用例是,我想为gtest构建一个e.gg。gtest项目恰好有一个不带任何install语句的CMakeLists.txt。我想在不将这些语句添加到gtest的CMakeLists.txt中的情况下构建包。

我得到了这样的目录结构:

代码语言:javascript
复制
+ gtest-1.5.0/...
+ CMakeLists.txt 

gtest-1.5.0的CMakeLists定义了这样的库:

代码语言:javascript
复制
cxx_static_library(gtest "${cxx_strict}" src/gtest-all.cc)
cxx_static_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
target_link_libraries(gtest_main gtest)

现在,我想在我的CMakeLists.txt中添加类似这样的内容:

代码语言:javascript
复制
add_subdirectory(gtest-1.5.0)
install(TARGETS gtest gtest_main ARCHIVE DESTINATION lib)

但cmake正确地声明:

代码语言:javascript
复制
CMake Error at CMakeLists.txt:10 (install):
  install TARGETS given target "gtest" which does not exist in this
  directory.

有没有办法在不打gtest-1.5.0补丁的情况下做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-23 21:23:33

您可以尝试使用文件安装,而不是安装目标。缺点是您必须处理共享和静态构建。

install(FILES gtest-1.5.0/gtest_main.so DESTINATION lib)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3547331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档