我应该将所有.o文件放在库中吗?

Am I supposed to put all .o files in the library?

本文关键字:文件 我应该      更新时间:2023-10-16

我想创建一个库,让我的程序使用一个类,让我们称之为A,它有一些简洁的方法等等......但是,此类依赖于其他一些(B 和 C),并且在其.cpp文件中包含它们的.hpp文件。

构建过程是这样的:

g++ -c B.cpp
g++ -c C.cpp
g++ -c A.cpp
ar rvs A.a *.o

通过这样做,我的其他项目现在只需要文件来包含我的 A 类、A.hppA.a 。我是否正确制作了静态库?我应该只将 A.o 放入存档(库)中(这样做会产生错误)吗?

仅供参考,以下是使用 A 类的程序的编译方式:

g++ test1.cpp A.a -o test1

编辑:有没有办法隐式地告诉链接器将我的程序与 A.a 链接?就像我不需要手动将其与iostream链接一样...

你现在的做法很好。将所有对象文件放入静态库。