C++ 如何隐式链接库?

C++ 如何隐式链接库?,c++,compiler-construction,compilation,linker,g++,C++,Compiler Construction,Compilation,Linker,G++,我有一个名为a.a的库,它的.hpp文件名为a.hpp。当程序需要使用这个库时,它们包括“A.hpp”,并像这样链接到它:g++test1.cpp A.A-o test1。我希望只能够像这样编译g++test1.cpp-o test1,而不在其中显式地键入A.A,就像我不需要显式地将我的程序链接到iostream一样。如何实现这一点?< p>可以在VisualC++中完成(编译器可以在对象文件中嵌入一些链接选项,请求链接库是可能的)。 Gcc(据我所知,还有clang)没有这样的功能。您必须在命

我有一个名为a.a的库,它的.hpp文件名为a.hpp。当程序需要使用这个库时,它们包括“A.hpp”,并像这样链接到它:g++test1.cpp A.A-o test1。我希望只能够像这样编译g++test1.cpp-o test1,而不在其中显式地键入A.A,就像我不需要显式地将我的程序链接到iostream一样。如何实现这一点?

< p>可以在VisualC++中完成(编译器可以在对象文件中嵌入一些链接选项,请求链接库是可能的)。
Gcc(据我所知,还有clang)没有这样的功能。您必须在命令行上提供库;没有办法绕过它(构建工具在技术上不是一种方法,它们也把库放到它们用来运行链接器的命令行上)。

它可以在VisualC++中完成(编译器可以在对象文件中嵌入一些链接选项,请求链接库是可能的)。
Gcc(据我所知,还有clang)没有这样的功能。您必须在命令行上提供库;没有办法解决这个问题(从技术上讲,构建工具不是解决这个问题的方法;它们还将库放在用于运行链接器的命令行上)。

这可以通过修改编译器规范来实现。但你真的不想这么做。为什么告诉编译器做什么(用一种简单的方式)是一个问题?我想最好使用
make
这样的工具来管理链接。@halfelf:在几乎所有的构建系统中,都需要添加对
a.a
的某种依赖,所以这不会简单得多。这可以通过修改编译器规范来实现。但你真的不想这么做。为什么告诉编译器做什么(用一种简单的方式)是一个问题?我想最好使用
make
这样的工具来管理链接。@halfelf:在几乎所有的构建系统中,都需要添加对
a.a
的某种依赖,所以这不可能简单得多。但在我给出的iostream示例中,它显然是有效的,不是吗?但在我给出的iostream示例中,它显然是有效的,不是吗?