我的源代码树是
-
CMakeLists.txt
-
演示
-
CMakeLists.txt
-
来源, Headers .
-
图书馆
-
CMakeLists.txt
-
来源, Headers .
因此,Demo是使用add_executable()完成的可执行文件,而Library显然是库 . 这些2如何联系在一起?
因为我现在正在使用target_link_libraries(演示库),但我收到错误:LNK2019我认为是由于没有成功链接引起的 .
有任何想法吗?
谢谢 .
编辑:在根CMakeLists.txt上,将这两个添加为 - > add_subdirectory(Library)add_subdirectory(Demo) .
EDIT2:
Demo CMakeLists
add_executable(Demo ${Headers}
${Source})
target_link_libraries(Demo ${blahblah}
${Library})
Library CMakeLists
add_library(Library blahblah.cpp
blahblah.h
foo.cpp
foo.h)
2 回答
这是不正确的:
你要说的是使用名为Library的字符串变量,它不存在 .
使用:
这样CMake就会知道你引用了目标“库”而不是变量 .
在上面的示例中,Library是目标名称,而不是变量 . 将它链接到可执行文件时,请使用
target_link_libraries(Demo Library)
('${}'周围没有'${}') .