代码分模块编译问题

oluckly 2012-07-24 09:39:51
请教一个关于makefile编译的问题.
例如: src目录下有:main.cpp
main.h
c.h
c.cpp
模块目录a --> a.h a.cpp a1.h a1.cpp
模块目录b --> b.h b.cpp b1.h b1.cpp


分别在目录src, a, b 分别写makefile 文件,如何写? 希望能识别是否需要重编译。(文件没有修改,不需要重新编译。 src中的makefile调用a和b中的makefile。)


main.cpp中包含main函数,man.cpp和c.cpp里面有调用a目录和b目录下的类函数。
...全文
110 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
oluckly 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

Python code

#################################################################
# Standard Rules

.PHONY: all clean

all: clean $(bin)

clean:
$(RM) $(objs)

$(bin): $(objs)
$(LINK……
[/Quote]


你这个不全吧。
oluckly 2012-07-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

C/C++ code
FALGS:Wall -O2 -g
CC:g++
SRC:main.cpp c.cpp
OBJ:${SRC:%.cpp=%.o}
all:depend main
depend:
@$(CC) -MM $(FLAGS) $(SRC) > .depend
-include .depend
main:$(OBJ)
$(CC) $(FALGS) -o $@ $(……
[/Quote]

src还有两个目录源代码呢,你这个都没编译啊。肯定通过不了啊。

不过非常感谢!

sadgod 2012-07-24
  • 打赏
  • 举报
回复

#################################################################
# Standard Rules

.PHONY: all clean

all: clean $(bin)

clean:
$(RM) $(objs)

$(bin): $(objs)
$(LINK) $@ $? $(LIBS)

#################################################################
# Additional Rules


$(obj)/%.o: $(main_src)/%.c
$(COMPILE.c) $< -o $@
xiaoji0507 2012-07-24
  • 打赏
  • 举报
回复
FALGS:Wall -O2 -g
CC:g++
SRC:main.cpp c.cpp
OBJ:${SRC:%.cpp=%.o}
all:depend main
depend:
@$(CC) -MM $(FLAGS) $(SRC) > .depend
-include .depend
main:$(OBJ)
$(CC) $(FALGS) -o $@ $(OBJ)
clean:
-rm -rfi $(OBJ) main .depend


如果不需要引用神马动态库文件的话基本就是这样了吧
oluckly 2012-07-24
  • 打赏
  • 举报
回复
大家帮帮忙, 有没有比较通用的makefile解决类似的问题啊。 谢谢啦!

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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