linux下面C++编译的makefile编写 20

OBJT=animal.ofish.oMainc.otest:$(OBJT)gcc-g$(OBJT)-I.-otestanimal.o:animal.cppanimal.... OBJT=animal.o fish.o Mainc.o
test:$(OBJT)
gcc -g $(OBJT) -I. -o test
animal.o:animal.cpp animal.h
gcc -c animal.cpp
fish.o:fish.cpp fish.h animal.h
gcc -c fish.cpp
Mainc.o:Mainc.cpp animal.h fish.h
gcc -c Mainc.cpp
clean:
rm -f test *.o
这是我写的makefile文件,工程是这样的,fish是animal的一个子类。Mainc.cpp的内容是:

#include <iostream>
#include "animal.h"
#include "fish.h"
using namespace std;
void fn(Animal *ptr)
{
ptr->drink();
}
int main()
{
Fish sh;
Animal *ptr;
ptr=&sh;
fn(ptr);
return 1;
}
而在animal的cpp文件中的代码是:

#include "animal.h"
#include <iostream>
using namespace std;
void Animal::eat()
{
cout<<"Animal eat"<<endl;
}
void Animal::drink()
{
cout<<"animal drink"<<endl;
}
Animal::Animal(int w,int g) //int w,int g
{
cout<<"animal it is"<<endl;
}
Animal::~Animal()
{
cout<<"kill animal"<<endl;
}
而fish里面也差不多,工程在windows下面通过,编译起来的时候问题大概是:
undefined reference to `std::cout',都是些这样的未定义的东西,谁能帮我解决下阿……
最后得到解决,将gcc的编译器换成了g++,在makefile中把所有gcc换成g++,就好了
展开
 我来答
matrix_nero
2011-03-21
知道答主
回答量:13
采纳率:0%
帮助的人:6.8万
展开全部
link error,指定下库路径
追问
how?为什么编译C文件的时候就不用追问阿?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式