c++ - 分发带标题的 .o 或 .a 文件

标签 c++

当使用 .a 文件时,我必须分发 .cpp 文件还是只分发 .h 文件?

比如我写了大量的类,把所有的代码编译成.o文件。然后我将 .o 文件存档到 .a 文件中。

当我尝试在其他项目中使用 .a 文件和 .h 文件时,有时需要我拥有 .cpp 文件。

对于某些 header ,它不会要求我提供 .cpp 文件,但对于诸如套接字之类的东西,它会提供对 impl_shutdown 的 undefined reference ,除非我包含 .cpp 文件。

即使我链接了所有必要的库,也会发生这种情况。

为什么? .o/.a 文件到底是什么?为什么我需要用它来分发 .cpp 文件?像 Zlib 和 LibPng 这样的库似乎不需要分发任何东西,除了 .h 和 .a 文件。

最佳答案

When using .a files, do I have to distribute the .cpp files with it or just the .h files?

只有标题。

What are .o/.a files really

.o 文件是 object code , .a 是文件(目标文件的集合)。它们是编译和组装的机器代码,需要链接才能创建可执行文件。

and why do I need to distribute the .cpp files with it?

你不知道。

关于c++ - 分发带标题的 .o 或 .a 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15723809/

相关文章:

c++ - 这种精度损失发生在哪里以及如何防止它发生?

c++ - 包含对其自身实例的引用的标准 vector 的模板类

c++ - Boost Python - 具有默认参数问题的重载函数

c++ - new Object() 和 Object() 有什么区别

c++ - 拒绝包含某些公共(public)静态数据成员的类型

c++ - QT 文件菜单未集成到标题栏中

c++ - gcc 未声明的标识符 "_asm"

c++ - 如何在 C++ 中声明一个带有填充信息的指针?

c++ - 通配符 vector 模板

c++ - 在 Excel 自动化中使用非本地化公式