我应该将所有.o文件放在库中吗?
Am I supposed to put all .o files in the library?
我想创建一个库,让我的程序使用一个类,让我们称之为A,它有一些简洁的方法等等......但是,此类依赖于其他一些(B 和 C),并且在其.cpp
文件中包含它们的.hpp
文件。
构建过程是这样的:
g++ -c B.cpp
g++ -c C.cpp
g++ -c A.cpp
ar rvs A.a *.o
通过这样做,我的其他项目现在只需要文件来包含我的 A 类、A.hpp
和 A.a
。我是否正确制作了静态库?我应该只将 A.o 放入存档(库)中(这样做会产生错误)吗?
仅供参考,以下是使用 A 类的程序的编译方式:
g++ test1.cpp A.a -o test1
编辑:有没有办法隐式地告诉链接器将我的程序与 A.a 链接?就像我不需要手动将其与iostream链接一样...
你现在的做法很好。将所有对象文件放入静态库。
相关文章:
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 我应该将外部标头放在 .h 文件还是.cpp文件中?
- 我应该如何获取配置文件的绝对路径与 Windows .exe一起发布?
- 我应该安装 .cmake 文件来共享/cmake 还是 lib/cmake?
- C++我应该用什么来保存格式化为字符串变量(如sprintf())的文件
- 在为 Java 编译动态链接文件时,我应该选择哪些 g++ 参数
- 我应该把Boost.Python的.so文件放在哪里,这样我就可以把它作为一个模块导入,以及我如何将它与Python 2
- 我应该使用什么功能在mac OS X中打开文件
- 我应该如何存储从文件中获取的这些信息?
- 我应该只对原始 cpp 文件使用 add_executable() 还是通过 add_library() 创建一个库
- 我应该在文件无法打开时关闭文件吗?
- Dokan:我应该自己处理文件共享和访问权限吗?
- 在更改文件描述符 1 以引用其他文件后,我应该如何管理 ::std::cout?
- 我应该如何将字节数组缓冲区传递给写文件
- 我应该将所有.o文件放在库中吗?
- 我应该把文件的末尾写在析构函数中吗
- 我应该如何生成 UserCalibration.bin 文件,如 OpenNI 示例 - NiUserTracker 中
- 我应该在.h文件中还是在.cpp文件中放置POD结构
- 我应该在头文件中的哪里声明我的私有类级静态常量
- 我的项目的哪些文件我应该放在repo