如何将静态库永久添加到Ubuntu系统?

How to add a static library permanently to the Ubuntu system?

大家好我最近创建了一个 C++ 项目,我将我的代码放入 header.hheader.cpp 文件并成功创建名为 header.a 的静态库。现在我将 header.h 文件放入系统的 /usr/local/include 位置,将 header.a 放入 /usr/local/lib 以便将我的库“安装”到机器中。现在,如果我想使用这个库,我必须执行以下步骤:

  1. 假设我正在使用 main.cpp 程序,我在程序顶部包含了这一行:
include <header.h>
  1. 然后,我用这个命令编译:
g++ main.cpp /usr/local/lib/header.a

一切都好。但我想找到一种方法将 header.a 库永久“存储”到系统中,以便像普通标准 C++ 头文件一样使用它,以这种方式简化编译:

g++ main.cpp

有办法吗?非常感谢大家。

你不能,而且系统库不会在没有被告知的情况下自动 linked。

然而,您可以将路径 /usr/local/lib 添加到 linker 的默认路径中以查找库(IIRC 默认情况下 Ubuntu 不在那里),这意味着您只需要将 -l(小写 L)选项添加到 link 与库。

但请注意,库应该有一个 lib 前缀。就像 libheader.a.

然后 link 和 -lheader:

g++ main.cpp -lheader

还有 -L 选项可以将路径添加到 linker 搜索的路径列表中,如果您有其他非标准路径,或者如果您无法编辑要使用的系统配置 /usr/local/lib:

g++ main.cpp -L/usr/local/lib -lheader

库文件仍然需要 lib 前缀。