红联Linux门户
Linux帮助

vc的代码转到linux下调不通。

发布时间:2008-10-20 20:45:38来源:红联作者:173235844
大家好,我是第一次来这里发帖,所以没有分数,大家帮个忙看看下面的问题。
这个是我在VC下写的一段代码,在VC下可以正常运行,但搬到linux下就出现问题了。
main,cpp:

#include
#include
using namespace std;


#include "anminial.h"
#include "dog.h"
#include "cat.h"

class Dog;
class Cat;

void soundPlay(Anminial &A1,Anminial &A2)
{

}
void soundPlay(Anminial *A1,Anminial *A2)
{
A1->sound();
A2->sound();
}


int main()
{
// Anminial *anminial = new Anminial();
// Dog *dog = new Dog("aa",11);
// Cat *cat = new Cat("bb",12);
Dog dog;
Cat cat;

// anminial->run();
dog.run();
cat.run();
cout<<"**********************************"<
// anminial->sound();
dog.sound();
cat.sound();
cout<<"**********************************"<
// anminial = dog;
// anminial.run();
// anminial = cat;
// anminial.run();
// cout<<"**********************************"<
// dog = cat; //虏禄??卤??毛
// dog->run();
// cout<<"**********************************"<
soundPlay(&dog,&cat);
cout<<"**********************************"<
soundPlay(cat,dog);
cout<<"**********************************"<
return 0;
}

cat.h:
#ifndef _CAT__H_
#define _CAT__H_

//#include "stdafx.h"
#include "anminial.h"

#include
using namespace std;

class Cat : public Anminial
{
public:
Cat();
Cat(string name,int weight);

~Cat();

void sound();
void run();
};
#endif

Cat.cpp:
#include "cat.h"
#include "animial.h"
// #include "anminial.h"
#include
using namespace std;

Cat::Cat()
: Anminial()
{
this->name = "";
this->weight = 11;
}

Cat::Cat(string name,int weight)
: Anminial(name,weight)
{
this->name = name;
this->weight = weight;
}

void Cat::run()
{
cout<<"cat is runnint"<}

void Cat::sound()
{
cout<<"cat is miaoing"<}
还有一个dog类,类似于cat 这里就不写出来了,
在linux下出现很多问题,大部分解决了,但下面的错误我想了两天也没想出来是什么原因。请大家给看看是什么问题。
好像在连接的时候出错的。找搜索了一下,大致原因是找不到这个函数的实现。但是不知道怎么解决。
main.o(.text+0x40): In function `main':
/home/wanglei/test2/main.c:31: undefined reference to `Dog::Dog[in-charge]()'
main.o(.text+0x4b):/home/wanglei/test2/main.c:32: undefined reference to `Cat::Cat[in-charge]()'
main.o(.text+0x53):/home/wanglei/test2/main.c:35: undefined reference to `Dog::run()'
main.o(.text+0x5b):/home/wanglei/test2/main.c:36: undefined reference to `Cat::run()'
main.o(.text+0x85):/home/wanglei/test2/main.c:40: undefined reference to `Dog::sound()'
文章评论

共有 5 条评论

  1. nassa1985 于 2008-11-12 10:24:55发表:

    linux下一般是用的C的库。。没有类的概念的。。

  2. feir8510 于 2008-10-27 20:37:56发表:

    linux下是g++ 可能库版本不兼容

  3. bugaoxing 于 2008-10-26 22:13:06发表:

    太长了,又没有行号。好难看得下去,你是怎样编译的??

  4. jinger7281 于 2008-10-23 10:40:00发表:

    据说linux下c++程序是.cpp和.C命名的看你的好像是以.c命名的

  5. wangdu2002 于 2008-10-21 02:05:29发表:

    兄弟到chinaunix论坛去请教下,我英文不行,不过看反馈信息,好象没找到头文件,可能环境变量吧