个人知识库
Author: 刘杰文, Date: Unknown, Categories: , Tags:
link:
这个主要的原因是gcc
编译的时候,各个文件依赖顺序的问题。
在gcc
编译的时候,如果文件a
依赖于文件b
,那么编译的时候必须把a
放前面,b
放后面。
在gcc编译时,链接库的指定顺序会影响编译行为
即链接时,符号寻找过程是根据库路径列表依次找到需要链接的库,若一个库在该路径列表中存在多个,则使用第一个找到的。从左向右,依次找寻符号定义gcc -o c -lb -la,符号搜寻过程是c=>b, b=>a 所以在main.c中使用了libhard_disk.so库中相关的函数,那么编译的时候必须是main.c在前,-lhard_disk在后。 ———————————————— 版权声明:本文为CSDN博主「LTracer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u013283985/article/details/115696775