【问题标题】:How to build library or executable binary project with dependent library project with cmake如何使用 cmake 构建具有依赖库项目的库或可执行二进制项目
【发布时间】:2016-06-15 21:36:35
【问题描述】:

我有两个 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

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

【问题讨论】:

标签: cmake dependencies project


【解决方案1】:

通过添加以下行,我能够构建依赖于 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)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
  • 2021-06-05
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多