[问题]关于如何编译不同目录下的CPP文件

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
weihuang
帖子: 15
注册时间: 2007-10-03 8:31

[问题]关于如何编译不同目录下的CPP文件

#1

帖子 weihuang » 2008-07-03 10:56

目前在学CPP,遇到一个问题。问题如下:
一个主程序有若干个函数,分别命名为:a1.cpp, a2.cpp, b1.cpp, b2.cpp, 对应头文件a1.h, a2.h, b1,h, b2.h 及主程序main.cpp。 并且所有文件都包含了a1.cpp中定义的数据结构,
a2.cpp中的函数被 b1,b2 调用,
b1,b2 独立;
main 只调用b2。

其中以a 开头的四个文件放在../test/a/ 下,其余文件放在 ../test/b/ 下,测试数据为在 ../test/data/data1, 那么这时候的Makefile 应该怎么写? 如下我写的Makefile
当前运行目录为: ../test/b$

代码: 全选

CXX = g++
CC = g++

CXXFLAG = -I ../a/
all:		main

a1.o:      ../a/a1.cpp ../a/a1.h
	$(CXX) $(CXXFLAG) -c ../a/a1.cpp

a2.o:      ../a/a2.cpp ../a/a2.h
	$(CXX) $(CXXFLAG) -c ../a/a2.cpp

b1.o:      b1.cpp b1.h ../a/a1.h ../a/a2.h

b2.o:      b2.cpp b2.h ../a/a1.h ../a/a2.h

main.o:    main.cpp b2.h ../a/a1.h

main:      main.o a1.o a2.o b1.o b2.o

run:	       all
	./main	<../data/data1

clean:
	rm -f *.o  core main
请高手帮我指出问题,因为我的编译器一直提示我找不到a1的数据类型。谢谢, 等我把这本书搞定了,好好的搞搞MAKE 和 bash script, 还有一个R。
上次由 weihuang 在 2008-07-03 11:05,总共编辑 1 次。
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

#2

帖子 bones7456 » 2008-07-03 10:59

关注我的blog: ε==3
头像
weihuang
帖子: 15
注册时间: 2007-10-03 8:31

#3

帖子 weihuang » 2008-07-03 11:08

。。。我这有权威的GNU Make 手册,我只是现在就急想知道。不过谢谢。我先搞定重要的先,这个后面再看,谢谢你的资料了。
回复