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里面定义的函数?
展开
1个回答
展开全部
链接时,加上参数-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......,而没有头文件声明,编译器不知道有这个宏,在某些情况下,编译器会给出警告,如果没有头文件声明函数有哪些变量,那么,就算在调用函数时,多一个变量,少一个变量,很可能会检查不出来。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询