
操作系统原理
flychildc
自律决定成败
展开
-
链接器解析多重定义的全局符号
1、链接器对全局符号的引用解析过程:当编译器遇到一个不是在当前模块(可重定位目标文件)中定义的符号(变量或函数名)时,会假设该符号是在其他某个模块中定义的,生成一个链接器符号表条目,并把它交给链接器处理。如果链接器在他的任何模块中都找不到这个被引用符号的定义,就输出一条错误信息并终止。 2、对于Linux编译系统,其将函数和已初始化的全局变量作为强符号,未初始化的全局变量是弱符号。然后根据以下规...原创 2018-12-13 21:17:57 · 1136 阅读 · 0 评论 -
链接时库文件没有放在命令行尾部所造成的问题
1、今天在用gcc命令编译使用了动态链接库中的函数的源码时,出现了问题,如下: 需要说明下所有提示未定义的函数都是在动态库libitcastsocket.so和libmessagereal.so这两个动态库之中的,这些函数是在MngClient_Agree中使用的。上面三个.o文件是根据源文件编译好的,都没有问题。然后我使用以下命令想将三个.o的文件链接成可执行目标文件。 gcc -L/...原创 2019-03-02 20:58:20 · 950 阅读 · 0 评论