Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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++库,然后 将它们链接成二进制文件。我想把图书馆分成两部分 .so用于动态链接的文件(以便其他项目可以使用 自由党)。一个库构建得很好,但是当我尝试链接 如果是这样,我会出现“未定义引用”错误_C++_C_G++_Shared Libraries_Ld - Fatal编程技术网

静态与动态库中的符号解析 有一个自由软件项目,它可以构建一些静态C++库,然后 将它们链接成二进制文件。我想把图书馆分成两部分 .so用于动态链接的文件(以便其他项目可以使用 自由党)。一个库构建得很好,但是当我尝试链接 如果是这样,我会出现“未定义引用”错误

静态与动态库中的符号解析 有一个自由软件项目,它可以构建一些静态C++库,然后 将它们链接成二进制文件。我想把图书馆分成两部分 .so用于动态链接的文件(以便其他项目可以使用 自由党)。一个库构建得很好,但是当我尝试链接 如果是这样,我会出现“未定义引用”错误,c++,c,g++,shared-libraries,ld,C++,C,G++,Shared Libraries,Ld,这些很容易跟踪和修复(代码引用了这些 方法,但相应的.cc文件不存在 包含在Makefile编译命令中)。但是我是,, 想知道为什么,作为一个普遍的问题,一个图书馆会链接 可以作为静态库使用,但不能作为动态库使用。是什么 g++和ld在一种情况下做什么,而不是在另一种情况下 非常感谢。使用ar创建的静态库只不过是一堆对象文件ar是一个非常简单的归档程序。链接时没有解决依赖关系,请参阅ar的手册页 另一方面,共享对象,或者您称之为动态库的对象是一个非常不同的野兽。它们实现ELF二进制格式,并具有复

这些很容易跟踪和修复(代码引用了这些 方法,但相应的.cc文件不存在 包含在Makefile编译命令中)。但是我是,, 想知道为什么,作为一个普遍的问题,一个图书馆会链接 可以作为静态库使用,但不能作为动态库使用。是什么 g++和ld在一种情况下做什么,而不是在另一种情况下


非常感谢。

使用ar创建的静态库只不过是一堆对象文件ar是一个非常简单的归档程序。链接时没有解决依赖关系,请参阅ar的手册页


另一方面,共享对象,或者您称之为动态库的对象是一个非常不同的野兽。它们实现ELF二进制格式,并具有复杂的规则集。它们还有初始化代码,一些依赖项在链接时被解析。有关更深入的介绍,请参见和。

使用ar创建的静态库只不过是一组对象文件ar是一个非常简单的归档程序。链接时没有解决依赖关系,请参阅ar的手册页

另一方面,共享对象,或者您称之为动态库的对象是一个非常不同的野兽。它们实现ELF二进制格式,并具有复杂的规则集。它们还有初始化代码,一些依赖项在链接时被解析。有关更深入的介绍,请参见和

但当我尝试链接它时,会出现“未定义引用”错误

显示您的链接命令。链接共享库时通常不会出现“未定义引用”错误,因为共享库(默认情况下)允许有未解析的符号

或者,您的意思是,当您将最终可执行文件链接到共享库时,会出现“未定义引用”错误

但当我尝试链接它时,会出现“未定义引用”错误

显示您的链接命令。链接共享库时通常不会出现“未定义引用”错误,因为共享库(默认情况下)允许有未解析的符号


或者,您的意思是,当您将最终可执行文件链接到共享库时,会出现“未定义引用”错误?

未引用的对象实际位于具有静态libs的构建中的何处?是其他静态库、共享库还是.o文件?引用是由什么构成的,其中一个库?未引用的对象实际位于具有静态libs的构建中的何处?是其他静态库、共享库还是.o文件?参考文献是什么,其中一个图书馆?谢谢,乔。这些链接很有用。如果答案有用,那么你仍然可以投票/接受它,JLV。谢谢,Jorg。这些链接很有用。如果答案有用,那么你仍然可以投票/接受它,JLV。