linker - 使用 CMake 链接静态库

标签 linker cmake static-linking

我无法使用 CMake 静态链接库 ${static_library}。我已尝试对路径进行硬编码,据我所知,TARGET_LINK_LIBRARIES 应该自动链接此路径。

ADD_LIBRARY(libraryA STATIC ${source_files})
TARGET_LINK_LIBRARIES(libraryA debug ${static_library})

有一个子项目稍后在构建中链接libraryA

ADD_EXECUTABLE(testA ${test_sources}) 
TARGET_LINK_LIBRARIES(testA libraryA)

其中已正确链接 ${static_library},但我需要将 ${static_library} 直接链接到 libraryA

最佳答案

您不能将库直接链接到库中。

某些编译器允许您执行此操作(例如 MS Visual Studio 有一个选项),但其他编译器则不允许,这就是为什么 CMake 也不允许这样做。请参阅this answer了解您有什么选择来处理这个问题。

关于linker - 使用 CMake 链接静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18901128/

相关文章:

cmake - 同名的 Python 库和 CMake 目标

qt - 静态编译 QWebKit 4.6.2

c++ - 项目依赖C++的二进制概述

C++ std::queue push pop 两个不同的对象获取第一个对象

visual-studio-2010 - XMPP 客户端库 gloox - 链接器找不到符号

c++ - Qt 翻译文件在 make clean 上被删除,使用 CMake

c++ - 编译 dll 项目时生成的 .lib 文件有什么用,我可以将它用于静态链接吗?

c++ - 如何在 visual studio 2010 中重用已链接到 DLL 的静态库代码与另一个 C++ 应用程序?

c - 基础教程? Eclipse CDT 中的 Makefile

c - STM32F7 : hard fault when jumping to application from custom bootloader