如何使用cmake使用依赖库项目构建库或可执行二进制项目
How to build library or executable binary project with dependent library project with cmake
我有两个 cmake 项目:
BiosPatcher\CommonBase\
BiosPatcher\Bios\
第一个构建了一个库,并有包含 headers 的 ./include 文件夹。
如何构建第二个项目库(或可执行文件),它依赖于第一个库 ./include 用于编译和 libCommonBase.dll 用于执行(在可执行文件构建的情况下)。
我已经包含了 header 个这样的文件
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../CommonBase/include)
而且有效。
我 link 这样的图书馆:
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
我想我需要以某种方式指定文件夹来查找库,但我不知道如何。
通过添加以下行,我能够构建依赖于 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)
我有两个 cmake 项目:
BiosPatcher\CommonBase\
BiosPatcher\Bios\
第一个构建了一个库,并有包含 headers 的 ./include 文件夹。 如何构建第二个项目库(或可执行文件),它依赖于第一个库 ./include 用于编译和 libCommonBase.dll 用于执行(在可执行文件构建的情况下)。
我已经包含了 header 个这样的文件
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../CommonBase/include)
而且有效。
我 link 这样的图书馆:
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
我想我需要以某种方式指定文件夹来查找库,但我不知道如何。
通过添加以下行,我能够构建依赖于 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)