我有cmake的項目針對的共享對象鏈接是非常看起來像這樣:導演的cmake與調試後綴(_D)
cmake_minimum_required(VERSION 3.0)
SET(CMAKE_DEBUG_POSTFIX "_d")
include_directories(../TransfunctionerProject)
include_directories(../TransmogrifierProject)
set(Libraries
ContinuumTransfunctioner
Transmogrifier
)
set(SourceFiles
Wrapper.cpp
Logger.cpp
)
add_library(Frobnigator SHARED ${SourceFiles})
add_library(FrobnigatorStatic STATIC ${SourceFiles})
set_target_properties(FrobnigatorStatic PROPERTIES OUTPUT_NAME Frobnigator)
target_link_libraries(Frobnigator ${Libraries})
凡ContinuumTransfunctioner和Transmogrifier項目包括調試後綴指令SET(CMAKE_DEBUG_POSTFIX "_d")
使libContinuumTransfunctioner_d.so
和libTransmogrifier_d.so
都存在。
的問題是,當前的項目似乎鏈接對靜態庫沒有_D後綴,並抱怨:
/usr/bin/ld: cannot find -lContinuumTransfunctioner
你可以張貼鏈接級的輸出,如果你使用詳細= 1運行cmake,它會更容易找到解決方案,驗證可能的錯誤。 –
另外,你確定你用-DCMAKE_BUILD_TYPE = Debug配置了cmake嗎? –
@TomazCanabrava是cmake配置了-DCMAKE_BUILD_TYPE = Debug'(這是默認的innit?)。 '使VERBOSE = 1'鏈接'-lContinuumTransfunctioner -lTransmogrifier'。 – Olumide