当前位置:  技术问答>linux和unix

急!急!急!急!急!本人制作的Makefile文件和程序,执行时错误,

    来源: 互联网  发布时间:2015-08-04

    本文导语:  //a.h #ifndef __A_H__ #define __A_H__ class CAA { public: CAA(); virtual ~CAA(); public: void AA(); }; #endif //(__A_H__) //a.cpp #include "a.h" #include  #include  CAA::CAA() { } CAA::~CAA() { } void CAA::AA() { printf("This AA!n"); return; } //b.h #ifndef...

//a.h
#ifndef __A_H__
#define __A_H__

class CAA
{
public:
CAA();
virtual ~CAA();

public:
void AA();

};

#endif //(__A_H__)

//a.cpp
#include "a.h"
#include 
#include 

CAA::CAA()
{

}

CAA::~CAA()
{

}

void CAA::AA()
{
printf("This AA!n");
return;
}
//b.h
#ifndef __B_H__
#define __B_H__

class CBB
{
public:
CBB();
virtual ~CBB();

public:
void BB();

};

#endif //(__B_H__)
//b.cpp
#include "b.h"
#include 
#include 

CBB::CBB()
{

}

CBB::~CBB()
{

}

void CBB::BB()
{
printf("This BB!n");
return;
}

//Main.cpp
#include "a.h"
#include "b.h"

int main()
{
CAA a;
CBB b;
a.AA();
b.BB();
return 0;
}

//Makefile
Main: a.o b.o Main.o
a.o: a.cpp a.h
g++ -c -g a.cpp
b.o: b.cpp b.h
g++ -c -g b.cpp
Main.o: a.h b.h Main.cpp
g++ -c -g Main.cpp
//执行是错误,是连接的错误,那位大虾可以解决这个问题,下面为错误代码。

[sheep@workserver sheep]$ make
g++ -c -g Main.cpp
g++ -c -g a.cpp
g++ -c -g b.cpp
cc   Main.o a.o b.o   -o Main
Main.o(.eh_frame+0x12): In function `main':
/home/sheep/Main.cpp:7: undefined reference to `__gxx_personality_v0'
a.o(.text+0x3e): In function `CAA::~CAA [not-in-charge]()':
/home/sheep/a.cpp:13: undefined reference to `operator delete(void*)'
a.o(.text+0x6a): In function `CAA::~CAA [in-charge]()':
/home/sheep/a.cpp:13: undefined reference to `operator delete(void*)'
a.o(.text+0x96): In function `CAA::~CAA [in-charge deleting]()':
/home/sheep/a.cpp:13: undefined reference to `operator delete(void*)'
a.o(.gnu.linkonce.d._ZTI3CAA+0x0):/home/sheep/a.cpp:6: undefined reference to `vtable for __cxxabiv1::__class_type_info'
b.o(.text+0x3e): In function `CBB::~CBB [not-in-charge]()':
/home/sheep/b.cpp:13: undefined reference to `operator delete(void*)'
b.o(.text+0x6a): In function `CBB::~CBB [in-charge]()':
/home/sheep/b.cpp:13: undefined reference to `operator delete(void*)'
b.o(.text+0x96): In function `CBB::~CBB [in-charge deleting]()':
/home/sheep/b.cpp:13: undefined reference to `operator delete(void*)'
b.o(.gnu.linkonce.d._ZTI3CBB+0x0):/home/sheep/b.cpp:6: undefined reference to `vtable for __cxxabiv1::__class_type_info'
collect2: ld returned 1 exit status
make: *** [Main] Error 1



|
//Makefile
all: Main
Main: a.o b.o Main.o
         g++ -g -o Main a.o b.o Main.o
a.o: a.cpp a.h
g++ -c -g a.cpp
b.o: b.cpp b.h
g++ -c -g b.cpp
Main.o: a.h b.h Main.cpp
g++ -c -g Main.cpp

|
最后不能用cc去做连接,用g++好了。

|
CC 和 GCC 和 G++ 用一个就行了.

|
把cc改为c++

|
楼上很详细了,
补充一点:写Makefile时,*.o和*.cpp的写法也是支持的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在cygwin下制作arm交叉编译器时奇怪的错误,大家帮帮忙
  • 想安装samba服务,想制作iso镜像来挂载,如何制作iso文件?
  • ubuntu8.10有个制作u盘启动盘的功能,谁能制作个u盘启动盘的iso给我?小点的,有桌面的。
  • Destoon模板怎么制作?destoon模板制作简单教程
  • usb闪存启动盘制作工具 Flashboot
  • 制作usb启动盘
  • USB启动盘制作软件 iBurnMgr
  • 图标、光标制作工具 Greenfish
  • 探讨下启动盘的制作原理!
  • 如何制作FC4启动光盘(grub)?
  • Java安装程序制作工具 IzPack
  • 图表制作软件 Openchart2
  • ThinkPHP标签怎么制作?thinkphp标签制作实例教程
  • 电子杂志制作软件 Scribus
  • 利用Wordpress轻松制作电子书 Anthologize
  • 如何利用Linux安装盘制作启动盘?
  • Linux下怎么制作帮助文件
  • chm制作工具 CHMWriter
  • 视频制作工具 FlasKMPEG
  • DVD 视频光盘制作软件 Bombono DVD
  • 图标制作工具 IconDeveloper


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    图表制作软件 Openchart2 iis7站长之家