如何告诉CMake对库链接可执行文件
How to tell CMake to link executable against library?
我的源代码树是
- CMakeLists.txt
- 演示
- CMakeLists.txt
- 来源、头。
- 图书馆
- CMakeLists.txt
- 来源,头。
- 演示
Demo是可执行文件通过add_executable()图书馆显然就是图书馆。这两者是如何联系在一起的?
因为现在我正在使用target_link_libraries(演示库),但我得到错误:LNK2019,我认为这是由于链接不成功造成的。
任何想法?
谢谢。
edit:在根目录CMakeLists.txt上,这两个被添加为-> add_subdirectory(Library) add_subdirectory(Demo)。
edit2:
Demo CMakeLists
add_executable(Demo ${Headers}
${Source})
target_link_libraries(Demo ${blahblah}
${Library})
图书馆CMakeLists add_library(Library blahblah.cpp
blahblah.h
foo.cpp
foo.h)
这是不正确的:
target_link_libraries(Demo ${blahblah}
${Library})
你说的是使用名为Library的字符串变量,该变量不存在。
使用:
target_link_libraries(Demo ${blahblah}
Library)
在上面的例子中,Library是一个目标名称,而不是一个变量。当你将它链接到你的可执行文件时,使用target_link_libraries(Demo Library)
('Library'周围没有'${}')
相关文章:
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 为什么C++可执行文件在与较新的libstdc++.so链接时运行得更快?
- 在链接可执行文件之前查找静态库未解析的依赖项
- python37.dll在可执行文件中未链接
- 调用函数一次用于动态链接库,一次从可执行文件调用函数
- 使用共享库编译可执行文件时仅链接所需的符号
- 使用 MINGW 和 CPLEX 库链接从 Linux 编译 Windows 可执行文件
- 不同的数学符号绑定与共享库与 dlopen 并直接链接到可执行文件 (Linux)
- 静态库中的符号有时会链接到可执行文件中,有时则不会
- CMake - 仅在需要时将库链接到可执行文件
- cusparse功能的多个定义错误在链接可执行文件中的cuda文件时
- G 无法将.O文件链接到可执行文件中
- 为什么 GNU ld 在链接可执行文件和共享对象时以不同的方式解析符号
- 为什么 Linux 上的动态链接可执行文件在其自己的内存空间中具有 libc 的完整内存空间
- Linaro工具链-ARM可执行文件
- c++链接器如何选择将类的哪个定义链接到可执行文件中
- 如何告诉CMake对库链接可执行文件
- 链接可执行到共享库(Android Studio 2.2)
- 用静态库的完整路径链接可执行文件
- 链接可执行文件中的共享库与另一个共享库