當使用CMake構建開源項目(在我的情況下,它是檸檬圖庫)時,當我嘗試通過-DBUILD_SHARED_LIBS=1
構建共享庫時發生此錯誤:CMake錯誤:共享庫目標沒有庫目標的目標
TARGETS given no LIBRARY DESTINATION for shared library target
這個錯誤來自哪裏,我該如何解決?
當使用CMake構建開源項目(在我的情況下,它是檸檬圖庫)時,當我嘗試通過-DBUILD_SHARED_LIBS=1
構建共享庫時發生此錯誤:CMake錯誤:共享庫目標沒有庫目標的目標
TARGETS given no LIBRARY DESTINATION for shared library target
這個錯誤來自哪裏,我該如何解決?
在我的CMakeLists.txt
中,我的INSTALL命令沒有LIBRARY參數。
從此改變:
INSTALL(
TARGETS lemon
ARCHIVE DESTINATION lib
COMPONENT library
)
這樣:
INSTALL(
TARGETS lemon
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib # <-- Add this line
COMPONENT library
)
固定我的問題。
我得到這個......出現這種情況的另一個原因是,當你創建一個共享庫
add_library($ {NAME} SHARED源)
那麼當到達的CMake在Windows平臺上安裝命令,它抱怨這些錯誤,解決辦法是使用RUNTIME而不是LIBRARY,就像
if(WIN32)
install(TARGETS ${NAME}
RUNTIME DESTINATION path)
else()
install(TARGETS ${NAME}
LIBRARY DESTINATION path)
endif()
我想你的意思是「'RUNTIME'而不是'LIBRARY'」。 – 2016-06-09 15:42:04
對,糾正。 – 2016-06-09 22:49:37
你的例子中'path'的兩個用法是不同的嗎?如果沒有,您可以使用 'install(TARGETS $ {NAME} 運行時目的地路徑 LIBRARY DESTINATION路徑 ) – Unapiedra 2016-10-26 23:30:49