当前位置: 技术问答>linux和unix
.a文件的动态链接和静态链接问题
来源: 互联网 发布时间:2015-11-23
本文导语: 我要在main中使用libhello.a,使用了这样的命令: gcc -main.o -o main.exe -L "./" -lhello 用file命令查看:file main.exe 得到dynamically linked (uses shared libs) 但使用下面的命令时: gcc -main.o -o main.exe -static -L "./" -lhello ...
我要在main中使用libhello.a,使用了这样的命令:
gcc -main.o -o main.exe -L "./" -lhello
用file命令查看:file main.exe
得到dynamically linked (uses shared libs)
但使用下面的命令时:
gcc -main.o -o main.exe -static -L "./" -lhello
用file命令查看:file main.exe
得到statically linked
我想问:dynamically link 和statically link的区别是什么?.a文件也能动态链接吗?那它和.so的区别又在哪?
gcc -main.o -o main.exe -L "./" -lhello
用file命令查看:file main.exe
得到dynamically linked (uses shared libs)
但使用下面的命令时:
gcc -main.o -o main.exe -static -L "./" -lhello
用file命令查看:file main.exe
得到statically linked
我想问:dynamically link 和statically link的区别是什么?.a文件也能动态链接吗?那它和.so的区别又在哪?
|
再仔细看:)
.so是动态链接库库,.a是静态链接库,是连接器根据选项来选择的。缺省连接的是动态库,除非没有动态库或指定了-Bstatic选项。
.so是动态链接库库,.a是静态链接库,是连接器根据选项来选择的。缺省连接的是动态库,除非没有动态库或指定了-Bstatic选项。