如何将静态库永久添加到Ubuntu系统?
How to add a static library permanently to the Ubuntu system?
大家好我最近创建了一个 C++ 项目,我将我的代码放入 header.h 和 header.cpp 文件并成功创建名为 header.a 的静态库。现在我将 header.h 文件放入系统的 /usr/local/include 位置,将 header.a 放入 /usr/local/lib 以便将我的库“安装”到机器中。现在,如果我想使用这个库,我必须执行以下步骤:
- 假设我正在使用 main.cpp 程序,我在程序顶部包含了这一行:
include <header.h>
- 然后,我用这个命令编译:
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
前缀。
大家好我最近创建了一个 C++ 项目,我将我的代码放入 header.h 和 header.cpp 文件并成功创建名为 header.a 的静态库。现在我将 header.h 文件放入系统的 /usr/local/include 位置,将 header.a 放入 /usr/local/lib 以便将我的库“安装”到机器中。现在,如果我想使用这个库,我必须执行以下步骤:
- 假设我正在使用 main.cpp 程序,我在程序顶部包含了这一行:
include <header.h>
- 然后,我用这个命令编译:
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
前缀。