【问题标题】:How to implicitly link libraries?如何隐式链接库?
【发布时间】:2012-09-19 08:59:06
【问题描述】:

我有一个名为 A.a 的库,其 .hpp 文件名为 A.hpp。当程序需要使用这个库时,它们#include "A.hpp",并像这样链接到它:g++ test1.cpp A.a -o test1。我希望能够像 g++ test1.cpp -o test1 那样只编译它,而无需在其中显式键入 A.a,就像我不需要显式地将我的程序与 iostream 链接一样。我怎样才能做到这一点?

【问题讨论】:

  • 这可以通过例如修改编译器规范。但你真的不想那样做。为什么告诉编译器(以简单的方式)做什么是一个问题?
  • 我想最好使用make之类的工具来管理链接。
  • @halfelf:在几乎任何构建系统中,都需要添加对A.a 的某种依赖,所以这再简单不过了。

标签: c++ compiler-construction compilation linker g++


【解决方案1】:

它可以在 Visual C++ 上完成(编译器可以在目标文件中嵌入一些链接器选项,链接库的请求是可能的请求之一)。

Gcc(据我所知,clang)没有这样的功能。您必须在命令行上提供库;没有办法解决(构建工具在技术上不是解决办法;它们还将库放在用于运行链接器的命令行上)。

【讨论】:

  • 但它显然在我给出的 iostream 示例中确实有效,不是吗?
猜你喜欢
  • 1970-01-01
  • 2011-07-17
  • 2015-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 2020-08-16
  • 1970-01-01
相关资源
最近更新 更多