[英]CMake: build lib and link it to executable results in undefined reference error
我有一個cmake設置,應該首先構建一個庫,然后使用該庫創建可執行文件:
# build and install the project lib
add_library(lib${PROJECT_NAME}
test.cpp
)
install(TARGETS lib${PROJECT_NAME} DESTINATION ${INSTALL_DIR})
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ DESTINATION ${INSTALL_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h*")
# link lib and create executable
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(lib${PROJECT_NAME})
install(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_DIR})
lib構建部分起作用,但似乎lib的鏈接無效。 我正在使用在test.cpp中實現的簡單添加方法,但獲得了對該方法的未定義引用。
我在這里想念什么?
target_link_libraries
調用的第一個參數必須是庫應鏈接到的目標的名稱,即您的情況下的${PROJECT_NAME}
,第二個參數是庫的目標。 請參閱target_link_libraries的文檔。
在您的示例中,您需要使用: target_link_libraries(${PROJECT_NAME} lib${PROJECT_NAME})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.