C++ 使G++;自动使用我的库

C++ 使G++;自动使用我的库,c++,ubuntu,terminal,include,shared-libraries,C++,Ubuntu,Terminal,Include,Shared Libraries,我已经建立了一个由以下文件组成的库: 一堆标题 一个.so文件(libmylib.so) < >我想编译一个C++程序(Simult.CPP),其中包括头文件,以及我需要使用库的地方。这就是我所做的,它正在发挥作用: 将标题放在usr/local/include中 将.so文件放在usr/local/lib中 以这种方式编译程序:g++sample.cpp-lmylib 我的问题是:如果在最后一行中省略-lmylib,为什么它不起作用? 有没有一种方法可以安装库,这样我就不必每次都把它放

我已经建立了一个由以下文件组成的库:

  • 一堆标题
  • 一个.so文件(libmylib.so)
< >我想编译一个C++程序(Simult.CPP),其中包括头文件,以及我需要使用库的地方。这就是我所做的,它正在发挥作用:

  • 将标题放在usr/local/include中
  • 将.so文件放在usr/local/lib中
  • 以这种方式编译程序:g++sample.cpp-lmylib
我的问题是:如果在最后一行中省略-lmylib,为什么它不起作用? 有没有一种方法可以安装库,这样我就不必每次都把它放在g++命令中


谢谢。

默认情况下使用的lib取决于编译器/链接器中的某些设置,
但它不是“usr/local/lib中的每个lib”或任何目录,只是一些特定的名称
(甚至只有一个)。调用
g++-v
g++-dumpspecs
列出它(以及更多内容)


因此,要么用自己的库列表重建编译器,要么每次都手动指定它。

指定要链接的库有什么不对?我有1500个lib*。所以在/usr/lib中,我当然不希望每个程序都与它们链接…啊,你可能想在标题中提到
-lmylib
,让编译器用它标记
.o
,然后让链接器注意到它并链接到
-lmylib
。这在某些系统上存在,但在linux上不存在。@MarcGlisse取决于它是如何构建的,或者不是?(至少如果我没记错的话,还有一个编译时设置)。