linux静态库链接报错函数undefined

linux静态库链接报错函数undefined,第1张

可能原因有,1.库链接的顺序有关,被依赖的库应该在依赖它的库前面链接。makefile里有可能后写的库先链接,逆序链接的。

2.头文件目录有多余的头文件,里面声明的函数找不到定义就会报错,头文件删掉即可解决报错。

Linux的静态库是以.a结尾的,要连接静态库有两种方法,一种是在编译命令最后直接加上库路径/库名称。

例如你的库在绝对目录/lib/libtest.a下面

你就可以这样来编译

你可以用-L制定库的目录,用-l指定库的名称。(是一起用的-L -l)

例如库的名称为libtest.a 那么就用-ltest

注:-ltest要放在-o的后面,不然不会起作用。

详细可参考: https://blog.csdn.net/u011964923/article/details/73297443

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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存