我有两个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
我想我需要以某种方式指定文件夹来查找图书馆,但我不知道如何。
答案 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)