当前位置: 技术问答>linux和unix
函数有定义怎么提示没有低能定义的错误呢?
来源: 互联网 发布时间:2016-09-27
本文导语: make之后出现这样的错误: main.c:57: undefined reference to `ReadConfig' main.c:110: undefined reference to `OperateDisplay' main.c:157: undefined reference to `WriteConfig' main.c:158: undefined reference to `ReadConfig' main.c:159: undefined reference to...
make之后出现这样的错误:
main.c:57: undefined reference to `ReadConfig'
main.c:110: undefined reference to `OperateDisplay'
main.c:157: undefined reference to `WriteConfig'
main.c:158: undefined reference to `ReadConfig'
main.c:159: undefined reference to `ReadConfig'
main.c:184: undefined reference to `OperateDisplay'
/tmp/ccwGdH2V.o: In function `Thread_Com_Fun':
main.c:225: undefined reference to `OpenCom'
main.c:226: undefined reference to `IniCom'
main.c:227: undefined reference to `ConnectCom'
而这些函数都有定义和实现,并且也把相应函数的头文件都包含进来了。
其中:
OperateDisplay,OpenCom,IniCom,ConnectCom这三个函数和main.c在同一个文件夹下但是不同的.c文件,而ReadConfig,WriteConfig在不同的文件夹听同一个.c文件下面。但是有包含相应的文件夹路径:..//file//ope.h,这个文件里面有这两个函数的声明。
这样都已经把声明都包含进来了。怎么还是提示函数没有定义呢?make之后也在相应的文件夹下面生成.o文件了。
请问这个是什么原因呢?请各位指导一下!谢谢!
main.c:57: undefined reference to `ReadConfig'
main.c:110: undefined reference to `OperateDisplay'
main.c:157: undefined reference to `WriteConfig'
main.c:158: undefined reference to `ReadConfig'
main.c:159: undefined reference to `ReadConfig'
main.c:184: undefined reference to `OperateDisplay'
/tmp/ccwGdH2V.o: In function `Thread_Com_Fun':
main.c:225: undefined reference to `OpenCom'
main.c:226: undefined reference to `IniCom'
main.c:227: undefined reference to `ConnectCom'
而这些函数都有定义和实现,并且也把相应函数的头文件都包含进来了。
其中:
OperateDisplay,OpenCom,IniCom,ConnectCom这三个函数和main.c在同一个文件夹下但是不同的.c文件,而ReadConfig,WriteConfig在不同的文件夹听同一个.c文件下面。但是有包含相应的文件夹路径:..//file//ope.h,这个文件里面有这两个函数的声明。
这样都已经把声明都包含进来了。怎么还是提示函数没有定义呢?make之后也在相应的文件夹下面生成.o文件了。
请问这个是什么原因呢?请各位指导一下!谢谢!
|
先手动这样执行:
gcc main.c operate_display.o operate_com.o ..//Share//operate_file.o -o main
成功后,再慢慢调试你的Makefile文件
gcc main.c operate_display.o operate_com.o ..//Share//operate_file.o -o main
成功后,再慢慢调试你的Makefile文件
|
最后生成可执行代码的时候没有把这些.o文件包含进去。
应该是这样:
gcc mian.c xxx.o xxx.o xxx.o -o main
应该是这样:
gcc mian.c xxx.o xxx.o xxx.o -o main