请考虑以下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
execA
和libB
有它们自己的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 ..
我该如何修复这个错误?
add_library()
移动到顶层不足以解决问题。 - woodzadd_library
调用移动到顶层。我没有看到“多个子目录”与单个子目录的情况有什么具体区别。当然,在某些情况下,移动add_library
调用并不方便。但我的答案并不意味着它适用于任何项目。 - Tsyvarev