【发布时间】:2019-09-11 00:33:24
【问题描述】:
这是我的源代码结构:
cd my_git_repo/
CMakeLists.txt
src/
main.cpp
mylibrary/
a.hpp
b.hpp
a.cpp
b.cpp
CMakeLists.txt
根CMakeLists.txt:
cmake_minimum_required(VERSION 3.9)
project(myexe CXX)
add_subdirectory(src/mylibrary)
find_library(mylib NAMES mylibrary.so PATHS "./src/mylibrary/mylibrary.so")
add_executable(myexe src/main.cpp)
target_link_libraries(myexe ${mylib})
mylibrary/CMakeLists.txt 很简单。它构建一个共享库并安装它们。
理想情况下,mylibrary 目标应在构建 myexe 之前构建并安装。但这不会发生。 mylibrary 是在 myexe 之后构建的。安装稍后进行。因此,find_library 失败。 pkg_check_modules() 适用于其他共享库,但由于同样的原因在这里失败。
感谢您的帮助。
编辑:
这个问题与重复问题不同,因为发布到该问题的答案似乎静态链接库target_link_libraries(game engine)。我想动态链接.so库。
【问题讨论】:
标签: cmake