【发布时间】:2018-02-21 14:43:55
【问题描述】:
我尝试使用外部库编译我的代码,但每次尝试都会出错。这是我实际的 cmake 链接:
include(dependencies.cmake)
add_executable(${NAME} ${SOURCE_FILES})
target_link_libraries(${NAME} PUBLIC ${DEPENDENCIES})
这是我的dependencies.cmake:
set(LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
find_library(MY_DEPENDENCIES NAMES myLib HINTS ${LIB_PATH} NO_DEFAULT_PATH)
set(DEPENDENCIES ${MY_DEPENDENCIES})
这是我的项目树:
Project
|----include
|----lib
| |----libmyLib.so
|----release
|----src
|----CMakeLists.txt
|----dependencies.cmake
我遇到了这个错误
make[4]: *** No rule to make target '../lib/libmyLib.so'
我准确地说:
- 我使用 CMake 3.9.3 在 Ubuntu 上工作
- 我在发布时使用影子构建来构建我的项目。
- 我不想直接使用我的 lib 的源代码或将其安装在 /usr/lib 中。
有人建议吗?
【问题讨论】:
-
您是否尝试使用空的构建目录或从其中删除
CMakeCache.txt文件重新配置您的项目?自从find_library第一次执行以来,您似乎更改了项目的布局。 -
请不要将 [已解决] 附加到您的问题标题中。如果答案解决了您的问题,只需单击答案旁边的绿色箭头将其标记为已解决。如果您自己找到了答案,您可以简单地回答您自己的问题。请参阅help center 了解更多信息。