包含一个自定义的头文件“test_head.h",然后把test_head.c做成了libtest_head.a放在/usr/lib下面,为什么这样还是找不到test_head.h里面定义的函数?
我试过,可以,然后不加头文件直接加-ltest_head也可以,那头文件还有什么用?
而且,我把libtest_head放在/usr/lib下面了不应该和标准库一样使用吗?为什么还要加-ltest_head?
和标准库不一样,linux下,C语言标准库只有一个,那就是libc.so,而libc.so编译器为自动帮你链接的,而libtest_head.a放入了/usr/lib下面,只是有了这一个库而已,并没有强调会链接,头文件是给出了函数的定义,以及其他的设定,例如这个函数中要用到一个宏,类似与open函数一样,O_CREAT, O_RDWR......,而没有头文件声明,编译器不知道有这个宏,在某些情况下,编译器会给出警告,如果没有头文件声明函数有哪些变量,那么,就算在调用函数时,多一个变量,少一个变量,很可能会检查不出来。
本回答被提问者采纳c语言给了头文件printf没有定义不能识别怎么解决求大
1. 检查头文件路径:确保包含的头文件路径正确无误。在代码中使用`#include`命令引入头文件。例如,`#include `用于引入标准输入输出函数库。2. 检查依赖库:函数未定义的错误可能源于缺失的依赖库。在GCC编译命令中添加`-l`参数,指定需要的库。对于标准输入输出库,使用`-l`和`libstdc++`(或具体版...
Linux下编写c语言头文件,编译时出现“函数未定义”
出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。方法如下 gcc -c main.c # -c参数的作用是让gcc只编译,不链接gcc -c test.cgcc -o main main.o ...
周立功USBCAN-II+在Linux使用用c++编编译为什么会提示库函数找不到?
就排查了库以及驱动的问题,而最有可能是因为他们的controlcan.h中导出的是C接口,C++调用时在controlcan.h中所有函数前面加一个extern "C"就可以了。
linux c程序编译时找不到included中的文件。。。
相关的编译所需的库文件和头文件没有安装,请查阅你需要安装的软件的依赖库是那些,安装之后再尝试编译。
linux下明明包含了函数声明的头文件,为什么还显示没有定义的参数
你编译的时候要把源文件也一起编译;比如自己定义了个sum.cpp sum.h 在main.cpp中调用,实际上是main调用了sum的库,所以要确保这个库存在,因此sum.cpp是需要编译生成对应库的,如果不去指定就什么都没有 所以要这样 g++ main.cpp sum.cpp;不能只编译main.cpp。
linux下C语言的库函数的头文件放在哪个目录下啊?
一般来说是放在\/usr\/include目录下的;但是这个并不局限也是可控的,如果我们进行开发过程中, 就会在内核的库函数文件目录:例如在:\/XXX\/XXX\/linux-X.X\/include 所以根据不同的情况,头文件存放的目录也是不同的,具体需要可以根据locate和grep命令进行查询。
linux软件开发时给gcc指定头文件和库文件路径的方法
从程序员的角度看,函数库实 际上就是一些头文件(.h)和库文件(.so或者.a)的集合。虽然Linux下的大多数函数都默认将头文件放到\/usr\/include\/目录下,而库 文件则放到\/usr\/lib\/目录下,但并不是所有的情况都是这样。正因如此,GCC在编译时必须有自己的办法来查找所需要的头文件和库文件。GCC...
为什么在Linux中strlwr()不能编译通过,已经查看过<string.h>,的确在...
strlwr和strupr都不是标准的C库函数!有些编译器不支持很正常,编译器不支持的,只能自己定义这两个函数并且用代码自己去实现它。个人使用过VC++2010,是可以编译通过的,证明VC++2010里边的编译器支持这两个函数。而linux中的GCC编译器则编译不通过,证明linux下的GCC编译器不支持这两个函数。
linux头文件存在编译时却找不到
1、通过find命令查找编译时找不到的头文件。find \/ -name x.h (x.h是缺少的头文件,根据实际情况操作)2、如果能找到, 就在\/usr\/include目录下建立一个x.h的软连接 ln -s \/usr\/include \/usr\/x\/y\/z\/x.h (假设缺少的头文件路径 \/usr\/x\/y\/z\/,根据实际情况操作)3、如果不能找到,...
我在c语言文件中加载头文件,为什么编译出错,说找不到头文件中定义的函数...
编译的命令错了吧 gcc a.c b.c -o main 其他没问题,即使不加b.h编译也不会错