[英]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.