linux c找不到自定义头文件的库函数

包含一个自定义的头文件“test_head.h",然后把test_head.c做成了libtest_head.a放在/usr/lib下面,为什么这样还是找不到test_h... 包含一个自定义的头文件“test_head.h",然后把test_head.c做成了libtest_head.a放在/usr/lib下面,为什么这样还是找不到test_head.h里面定义的函数? 展开
 我来答
839837145
2016-08-16 · TA获得超过776个赞
知道小有建树答主
回答量:649
采纳率:0%
帮助的人:383万
展开全部
链接时,加上参数-ltest_head
追问
我试过,可以,然后不加头文件直接加-ltest_head也可以,那头文件还有什么用?
而且,我把libtest_head放在/usr/lib下面了不应该和标准库一样使用吗?为什么还要加-ltest_head?
追答
和标准库不一样,linux下,C语言标准库只有一个,那就是libc.so,而libc.so编译器为自动帮你链接的,而libtest_head.a放入了/usr/lib下面,只是有了这一个库而已,并没有强调会链接,头文件是给出了函数的定义,以及其他的设定,例如这个函数中要用到一个宏,类似与open函数一样,O_CREAT, O_RDWR......,而没有头文件声明,编译器不知道有这个宏,在某些情况下,编译器会给出警告,如果没有头文件声明函数有哪些变量,那么,就算在调用函数时,多一个变量,少一个变量,很可能会检查不出来。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式