Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有标题的.o或.a文件的分发_C++ - Fatal编程技术网

C++ 具有标题的.o或.a文件的分发

C++ 具有标题的.o或.a文件的分发,c++,C++,当使用.a文件时,我是否必须随它一起分发.cpp文件,还是只分发.h文件 例如,我编写了大量类,并将所有代码编译成.o文件。然后我将.o文件归档到.a文件中 当我试图在其他项目中将.a文件与.h文件一起使用时,有时需要使用.cpp文件 对于某些标题,它不要求我提供.cpp文件,但对于套接字之类的东西,它提供了对impl\u shutdown的未定义引用,除非我包括.cpp文件 即使我链接了所有必要的LIB,也会发生这种情况 为什么??什么是真正的.o/.a文件?为什么我需要用它分发.cpp文件?

当使用.a文件时,我是否必须随它一起分发.cpp文件,还是只分发.h文件

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

当我试图在其他项目中将.a文件与.h文件一起使用时,有时需要使用.cpp文件

对于某些标题,它不要求我提供.cpp文件,但对于套接字之类的东西,它提供了对impl\u shutdown的未定义引用,除非我包括.cpp文件

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


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

只需分发库和头就可以了


确保如果对象位于多个库之上,则不存在循环依赖关系。如果有,您需要多次指定库,以便链接器拾取它们。

只需指定库和标题即可

确保如果对象位于多个库之上,则不存在循环依赖关系。如果有,您需要多次指定库,以便链接器拾取它们

当使用.a文件时,我是否必须随它一起分发.cpp文件,还是只分发.h文件

只有标题

什么是.o/.a文件

.o文件是.a文件(对象文件的集合)。它们是经过编译和组装的机器代码,需要链接这些代码才能创建可执行文件

为什么我需要用它来分发.cpp文件

你没有

当使用.a文件时,我是否必须随它一起分发.cpp文件,还是只分发.h文件

只有标题

什么是.o/.a文件

.o文件是.a文件(对象文件的集合)。它们是经过编译和组装的机器代码,需要链接这些代码才能创建可执行文件

为什么我需要用它来分发.cpp文件


不需要。

只是一个旁注,但可能需要添加。a通常是静态库(相对于共享),因为他提到了针对zlib和libpng的链接。@TC1“它们是存档”和“[它们]需要链接”:)只是旁注,但可能需要添加。a通常是静态库(相对于共享)因为他提到了针对zlib和libpng的链接。@TC1“它们是归档文件”和“[它们]需要链接”: