我一直在Linux上构建一个静态库。到目前为止,它纯粹是自包含的,内部的所有代码都不使用标准库以外的任何代码。我最近做了一个更改,现在一些编译单元正在使用boost代码。我一直在使用以下内容构建库:
g++ -c -Wall -pedantic *.cpp
ar -cvq libbfclass.a *.o
我的问题是:我是否有必要调整此方法来处理新库的使用,或者我只需要在构建使用我自己的库的可执行文件时提供链接库?从我的理解,静态库基本上只是一个目标文件的存档,但我想知道我是否需要修改我的构建脚本,以使一切正常工作,或者只有在构建可执行文件时才需要?
答案 0 :(得分:5)
你是对的 - 静态库只是目标文件的存档。编译最终可执行文件时会解析符号,因此需要提供对其他库的引用。