如何使用cmake构建具有依赖库项目的库或可执行二进制项目

时间:2016-06-14 16:16:27

标签: cmake dependencies project

我有两个cmake项目:

BiosPatcher\CommonBase\
BiosPatcher\Bios\

首先构建一个库并使用带头文件的./include文件夹。 如何构建第二个项目库(或可执行文件),它依赖于第一个库./include进行编译和libCommonBase.dll执行(如果是可执行文件构建)。

我已经包含了像这样的头文件

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../CommonBase/include)

它有效。

我像这样链接库:

target_link_libraries (Bios libCommonBase)

但我收到错误消息:

c:\Users\Sakhno\workspace\BiosPatcher\Bios\build>make
[ 16%] Linking CXX shared library libBios.dll
C:/mingw-w64/mingw32/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llibCommonBase
collect2.exe: error: ld returned 1 exit status

我想我需要以某种方式指定文件夹来查找图书馆,但我不知道如何。

1 个答案:

答案 0 :(得分:0)

我能够通过添加以下行来构建依赖于CommonBase项目目标库的Bios项目。

set(COMMON_BASE_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../CommonBase)

...
include_directories(${COMMON_BASE_PROJECT_DIR}/include)

...
target_link_libraries (Bios ${COMMON_BASE_PROJECT_DIR}/build/libCommonBase.dll)