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