C++ 编译使用C+中的另一个库的库+;
我不太明白使用另一个库的库的编译是如何工作的。据我所知,有4种情况: 1) 编译使用静态库(B)的静态库(a):编译可以工作,但针对库a的链接不起作用,因为静态库只是一个存档,包含由a编译而来的.o文件,而不是从B编译而来的文件。创建静态库时,编译阶段搜索函数定义并在标题中找到它们。在链接阶段,编译器在库B中搜索函数实现,如果找到它们,则编译成功,但实际上没有将函数实现放在静态库A中。这就是为什么在与库A链接时它不起作用的原因 2) 编译一个使用动态库的静态库:我认为创建和使用都可以,但是为什么呢?编译器在DLL/so中实际放了什么 3) 编译使用静态库的动态库:这样行吗 4) 编译一个使用另一个动态库的动态库:这也可以吗C++ 编译使用C+中的另一个库的库+;,c++,c,C++,C,我不太明白使用另一个库的库的编译是如何工作的。据我所知,有4种情况: 1) 编译使用静态库(B)的静态库(a):编译可以工作,但针对库a的链接不起作用,因为静态库只是一个存档,包含由a编译而来的.o文件,而不是从B编译而来的文件。创建静态库时,编译阶段搜索函数定义并在标题中找到它们。在链接阶段,编译器在库B中搜索函数实现,如果找到它们,则编译成功,但实际上没有将函数实现放在静态库A中。这就是为什么在与库A链接时它不起作用的原因 2) 编译一个使用动态库的静态库:我认为创建和使用都可以,但是为什么
谢谢您的时间。
< P>如果您在C或C++中创建了一个库或程序,则构建过程由两个步骤组成:如果创建动态库并使用动态库,则仅包含对已使用库的引用。因此,要运行最终产品,新库和已使用库都必须可用。所有这些组合都将起作用,您对此有何实际疑问?欢迎使用Stack Overflow。请花点时间阅读并参考你可以在这里询问什么和如何提问的材料。关于这种情况,你可以在1)发布一个复制准确错误的请柬(并逐字发布错误文本)。(1)构建静态库不涉及链接器;该场景中没有“链接阶段”。不以任何方式查阅图书馆B。与场景(2)相同。不存在“使用另一个库的静态库”这样的事情。静态库是对象的存档,这些对象可能有也可能没有未解析的引用。如何满足这些参考文献由图书馆用户决定。谢谢!现在清楚多了。我一直想知道人们从哪里学到这样的细节。多年的经验,一件一件,各种来源:书籍、手册、网络、调查和观察事物。。。