c++ - 我是否应该将所有 .o 文件放入库中?

标签 c++ g++ static-libraries

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

构建过程是这样的:

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 链接一样......

最佳答案

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

关于c++ - 我是否应该将所有 .o 文件放入库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485862/

相关文章:

c++ - 如果条件,代码不正确执行代码

c++ - 您是否将比较之前的步骤包括在排序算法的迭代次数中?

c++ - 如果 MinGW 不是一个非常可行的选项,则需要有关使用 MinGW 或任何其他 C++ 编译器编译 Direct Sound 的帮助

swift - 创建一个带有 React 依赖的静态库

c++ - 访问 2D valarrays 的列切片

c++ - 在派生类 C++ 中重新定义静态常量值

gcc - 由于 gcc 编译器版本不受支持,Caffe 编译失败

c++ - Ogre g++ 编译时错误

objective-c - 在 Apple 上合并静态库

c - 为什么 __attribute__((constructor)) 在静态库中不起作用?