CMake:如何将库链接到外部项目

时间:2016-02-09 15:21:24

标签: cmake gsl

我是CMake的新手,我想使用cmake构建一个项目(project_a),其中我必须包含一个外部autotools项目(project_b),而我必须将它与GSL库链接。这是我的CMakeLists.txt的一部分:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(project_a)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-shadow")

ExternalProject_Add(project_b
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/project_b
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/project_b/configure --prefix=<INSTALL_DIR>
BUILD_COMMAND ${MAKE})

find_package(GSL REQUIRED)
include_directories(${GSL_INCLUDE_DIRS})

set(PROJECT_B_LIB_DIR "${PROJECT_SOURCE_DIR}/build/project_b-prefix/lib")
set(prefix "lib")
set(suffix ".a")
set(PROJECT_B_LIBRARIES "${PROJECT_B_LIB_DIR}/${prefix}project_b${suffix}")

target_link_libraries(project_a ${GSL_LIBRARIES})
target_link_libraries(project_a ${PROJECT_B_LIBRARIES})

问题是GSL库在project_a中工作,但是在project_b中我得到了我尝试使用的任何GSL函数的“未定义引用”。

0 个答案:

没有答案