linux C++ 函数调用时找不到定义处

ozil1236 2014-08-11 01:38:29
我在头文件里声明一个函数,在对应的cpp文件里定义了函数,然后在另外一个类里调用该函数,已经引用了该函数的头文件,但用make命令编译时,说undefined reference to该函数,这是为何,本人刚接触linux下的编程,还不咋回事,求各位大神说说是哪里有问题。。
...全文
362 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
awsqsh 2014-08-19
  • 打赏
  • 举报
回复
函数定义的C文件没有编译进去。
  • 打赏
  • 举报
回复
Makefile
奔跑的路 2014-08-19
  • 打赏
  • 举报
回复
编译时,有可能没有包含头文件,检查一下
pcgg5244 2014-08-18
  • 打赏
  • 举报
回复
跟g++ 后面.so和.c的顺序也有关系
englishcctv 2014-08-13
  • 打赏
  • 举报
回复
楼上正解,肯定是只编了一个文件,要把你定义那个函数的那个文件一起编上去
rangzidanfeiba 2014-08-11
  • 打赏
  • 举报
回复
最简单的Makefile obj=a.o b.o des=main $des:$(obj) gcc -o $(des) $(obj) main.o:b.c gcc -c b.c a.o:a.c a.h gcc -c a.c
rangzidanfeiba 2014-08-11
  • 打赏
  • 举报
回复
假设你的函数代码在一个a.cpp 中,定义的类及其使用这个类的代码在b.cpp中,两个编译单元将生成两个a.o和b.o文件, 显然你这个时链接时期的错误。明显没有链接a.o文件。检查些Makefile就知道了。或者查下资料了解下Makefile写法。 我猜想你肯定是直接g++ b.cpp -o b 啦。
buyong 2014-08-11
  • 打赏
  • 举报
回复
编译顺序有问题
colddown 2014-08-11
  • 打赏
  • 举报
回复
把程序和log贴出来吧
mymtom 2014-08-11
  • 打赏
  • 举报
回复
这不科学啊! 上代码!

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧