首页 > 解决方案 > 如何将静态库永久添加到 Ubuntu 系统?

问题描述

大家好,我最近创建了一个 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

有没有办法做到这一点?非常感谢大家。

标签: c++compilationheaderstatic-libraries

解决方案


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

但是,您可以将路径添加/usr/local/lib到链接器的默认路径以查找库(对于 Ubuntu,IIRC 默认情况下不在其中),这意味着您只需添加-l(小写 L)选项即可与库链接。

但请注意,图书馆应该有一个lib前缀。就像在libheader.a.

然后链接-lheader

g++ main.cpp -lheader

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

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

库文件仍然需要lib前缀。


推荐阅读