我的源代码树是
因此Demo是使用add_executable()完成的可执行文件 和图书馆显然是图书馆。如何将这两者联系在一起?
因为我现在正在使用target_link_libraries(演示库),但我收到错误:LNK2019我认为是由于没有成功链接引起的。
有什么想法吗?
感谢。
编辑:在根CMakeLists.txt上,这些2被添加为 - > add_subdirectory(Library)add_subdirectory(Demo)。
EDIT2:
演示CMakeLists
add_executable(Demo ${Headers}
${Source})
target_link_libraries(Demo ${blahblah}
${Library})
图书馆CMakeLists
add_library(Library blahblah.cpp
blahblah.h
foo.cpp
foo.h)
答案 0 :(得分:3)
这是不正确的:
target_link_libraries(Demo ${blahblah}
${Library})
你所说的是使用名为Library的字符串变量,它不会存在。
使用:
target_link_libraries(Demo ${blahblah}
Library)
以便CMake知道您正在引用目标"图书馆"而不是变量。
答案 1 :(得分:0)
在上面的示例中,Library是目标名称,而不是变量。当您将其与可执行文件相关联时,请使用target_link_libraries(Demo Library)
(“图书馆”周围没有“$ {}”。