当前位置:  开发笔记 > 编程语言 > 正文

CMake安装(子目录中的TARGETS)

如何解决《CMake安装(子目录中的TARGETS)》经验,为你挑选了1个好方法。

考虑以下CMakeLists.txt文件:

add_subdirectory(execA)
add_subdirectory(libB)

install(TARGETS execA libB
        RUNTIME DESTINATION bin
        LIBRARY DESTINATION lib
        ARCHIVE DESTINATION lib)

我收到以下错误:

install TARGETS given target "execA" which does not exist in this
  directory

execAlibB拥有自己的CMakeList.txt文件,位于project目录下,以及我正在运行的构建目录cmake(cmake ..):

project
  |------ CMakeList.txt (the one with the code)
  |----execA
  |      \- .cpp, .hpp and CMakelist.txt
  |----libB
  |      \- .cpp, .hpp and CMakelist.txt
  |---- lib
  |---- bin
  \---- build (where I´m commanding: $ cmake ..

我该如何解决这个错误?



1> Tsyvarev..:

根据此bug报告,install(TARGETS)命令流仅接受在同一目录中创建的目标.

因此,您需要将add_library()调用移动到顶级目录,或将install(TARGETS)调用拆分为每个目标,并将每个调用移动到相应的子目录中.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有