在上构建一个静态c++库,我需要链接到其他库

Building a static c++ lib on do I need to link to other libraries?

本文关键字:其他 链接 c++ 静态 构建 一个      更新时间:2023-10-16

我一直在Linux上构建一个静态库。到目前为止,它完全是自包含的,里面的所有代码都不使用标准库以外的任何东西。我最近做了一个更改,现在一些编译单元正在使用boost代码。我一直在使用以下方法构建图书馆:

g++ -c -Wall -pedantic  *.cpp
ar -cvq libbfclass.a *.o

我的问题是:我有必要调整这种方法来处理新库的使用吗?还是在构建使用我自己库的可执行文件时只需要提供链接库?据我所知,静态库基本上只是对象文件的存档,但我想知道我是否需要修改我的构建脚本以使一切正常工作,或者是否只有在构建可执行文件时才有必要???

你是对的-静态库只是对象文件的存档。在编译最终可执行文件时会解析符号,因此此时需要提供对其他库的引用。