簡體   English   中英

CMake 未將優化和調試庫正確添加到 VS 項目

[英]CMake doesn't add optimised and debug libraries correctly to VS project

我在 CMake 中有這段代碼,用於為我擁有的項目查找調試和發布庫:

FIND_LIBRARY(MP4V2_LIBRARY_RELEASE libmp4v2 HINTS "${MP4V2_DIR}/bin/Windows-x64/Release Static (MT)")
FIND_LIBRARY(MP4V2_LIBRARY_BEDUG libmp4v2 HINTS "${MP4V2_DIR}/bin/Windows-x64/Debug Static (MTd)")
set(MP4V2_LIBRARIES "optimized ${MP4V2_LIBRARY_RELEASE} debug  ${MP4V2_LIBRARY_BEDUG}") 
message(STATUS ${MP4V2_LIBRARIES})

當我運行 CMake 時它被正確擴展:

optimized D:/MyData/SourceCode/camm_mp4v2/bin/Windows-x64/Release Static (MT)/libmp4v2.lib debug  D:/MyData/SourceCode/camm_mp4v2/bin/Windows-x64/Debug Static (MTd)/libmp4v2.lib

我將它添加到我的應用程序中,如下所示:

target_link_libraries(MyApp ${MP4V2_LIBRARIES})

當我為 VS 創建項目並嘗試編譯它時,我收到此錯誤:

cannot open file 'optimized D:\MyData\SourceCode\camm_mp4v2\bin\Windows-x64\Release Static (MT)\libmp4v2.lib debug  D:\MyData\SourceCode\camm_mp4v2\bin\Windows-x64\Debug Static (MTd)\libmp4v2.lib.lib'

顯然,CMake 沒有檢測到優化和調試庫。

這段代碼有什么問題,我該如何解決?

改為創建一個IMPORTED目標:

add_library(mp4v2 STATIC IMPORTED)
set_target_properties(mp4v2 PROPERTIES
    IMPORTED_LOCATION_DEBUG ${MP4V2_LIBRARY_DEBUG}
    IMPORTED_LOCATION_RELEASE ${MP4V2_LIBRARY_RELEASE})
target_link_libraries(MyApp mp4v2)

如果有任何標題,您也可以設置INTERFACE_INCLUDE_DIRECTORIES屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM