【发布时间】:2019-07-14 11:37:44
【问题描述】:
我有一个 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 中实现的简单 add 方法,我得到了一个未定义的对该方法的引用。
我在这里缺少什么?
【问题讨论】:
-
target_link_libraries调用的第一个参数必须是可执行目标的名称,即${PROJECT_NAME},第二个是库目标。 -
是的,就是这样,下次应该仔细阅读文档……谢谢。你可以把它放在一个答案中并接受它。