linux怎样实现c语言动态库与静态库的链接

linux怎样实现c语言动态库与静态库的链接,第1张

Linux系统中静态库是.a文件,编译链接.a文件只需要加上.a文件的完整的文件路径就可以了,比如:

gcc -o hello hello.c /usr/lib/libm.a

Linux系统的动态库是系统中的.so文件,编译链接动态库需要用-L参数指定动态库的搜索路径,还要用-l(这个是小写的L)指定动态库的名字,比如:

gcc -o hello hello.c -L/usr/openssl/lib -lcrypto

Linux的静态库文件并不需要设置啊,编译链接.a静态库文件时只需要加上.a文件的完整路径就可以了,比如:

gcc

-o

hello

hello.c

/usr/lib/libm.a

只有编译链接动态库才需要用-L选项来设置动态库的搜索路径,比如这个命令:

gcc

-o

hello

hello.c

-L/usr/openssl/lib

-lcrypto

创建静态库: ar -rcs test.a *.o 查看静态库: ar -tv test.a 解压静态库: ar -x test.a 查看程序依赖的动态库: readelf -a xxx|grep library 如:可以看到,下面的交叉程序hello执行依赖于如下两个动态库。 rebi@ubuntu:~/test$ arm-none-li...


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8976773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存