【发布时间】:2014-11-10 22:14:36
【问题描述】:
您好,我在使用 cmake 2.8.12 链接 ubuntu 上的两个库时遇到问题
目录结构
libraries
\lib1
CMakeLists.txt
source1.cpp
\lib2
CMakeLists.txt
source2.cpp
build
lib1 的 CMakeLists.txt
cmake_minimum_required(VERSION 2.8.4)
project(lib1)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../../build/)
set(BASE_DIR ../)
set(SOURCE_FILES source1.cpp)
include_directories ("${BASE_DIR}")
add_library(lib1 SHARED ${SOURCE_FILES})
target_include_directories (lib1 PUBLIC ${BASE_DIR})
这构建得很好。
然后对于 lib2 我有以下 CMakeLists.txt
cmake_minimum_required(VERSION 2.8.4)
project(lib2)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../../build)
set(BASE_DIR ../)
set(SOURCE_FILES
source2.cpp)
include_directories ("${BASE_DIR}")
add_library(lib2 SHARED ${SOURCE_FILES})
# include lib1
list(APPEND CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
find_library(lib1 lib1)
target_link_libraries(lib2 LINK_PUBLIC lib1)
我来了
链接 CXX 共享库 ../build/liblib2.so
/usr/bin/ld: 找不到-llib1
我不清楚如何使用 CMake 正确链接这两个共享库。任何人都知道出了什么问题。
干杯,迈克
【问题讨论】:
标签: c++ linux cmake shared-libraries dynamic-linking