我正在学习Ubuntu上的动态链接器。我想导入所需的libc函数,但是它链接了while libc.so文件。我不知道该怎么做,所以我来这里寻找帮助。
答案 0 :(得分:1)
如果您将程序链接到动态库(例如libc.so
),则
动态库将在以下位置加载到程序的进程中
运行。您的程序本身-链接器的输出文件-不会
包含libc
中的任何对象。它只会包含对
运行时加载程序,将libc.so
加载到进程中并解析符号。
这就是动态链接的工作方式。您只想在其程序中包含 来自libc
的对象
然后需要链接libc
的 static 版本,即libc.a
。那会
是不寻常的,并且是不必要的,除非您有特殊的理由
无法动态链接libc
。静态链接不会使您的程序
较小。它将变得更大,因为libc
中需要 的对象将被嵌入
在链接时进入。