分发带有头文件的.o或.a文件

Distribution of .o or .a files with headers

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

当使用。a文件时,我是否必须与它一起分发。cpp文件或只是。h文件?

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

当我试图在其他项目中使用。h文件的。a文件时,有时需要我有。cpp文件。

对于一些头文件,它不要求我提供。cpp文件,但对于诸如套接字之类的东西,它给出了对impl_shutdown的未定义引用,除非我包含。cpp文件。

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

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

当使用。a文件时,我是否必须分发。cpp文件与它或只是。h文件?

仅标头。

什么是。o/。A files really

。O文件是目标代码,.a是归档文件(目标文件的集合)。它们是经过编译和组装的机器码,需要将它们链接起来才能创建一个可执行文件。

,为什么我需要与它一起分发.cpp文件?

你没有。

只要库和头文件就可以了。

确保如果你的对象在多个库上,没有循环依赖。如果有,您需要多次指定库,以便链接器拾取它们。