社区
Linux/Unix社区
帖子详情
make 的怪事 (每次都重新编译所有源文件)
tomjun
2005-03-22 10:22:09
当我把g++编译中得到的 .o 指定存放到一个指定的 OBJ 目录后,为什么每次make时,每个文件都会被重新编译一次,而不论是否发生有变化。
而所有 .o 文件缺省存放在 源文件 目录时,则每次make时只编译有变化的源文件。
奇怪
...全文
1354
12
打赏
收藏
make 的怪事 (每次都重新编译所有源文件)
当我把g++编译中得到的 .o 指定存放到一个指定的 OBJ 目录后,为什么每次make时,每个文件都会被重新编译一次,而不论是否发生有变化。 而所有 .o 文件缺省存放在 源文件 目录时,则每次make时只编译有变化的源文件。 奇怪
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tomjun
2005-03-25
打赏
举报
回复
回复人: sharkhuang(~爱一个人好难~) ( ) 信誉:100 2005-03-22 18:26:00 得分: 0
加一句
xxx:$(OBJ)
$(CPP) $(LINKOBJ) -o "appeal" $(LIBS)
执行的时候用make xxx
已有此句:
$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
tomjun
2005-03-25
打赏
举报
回复
不好意思,贴错了,是这个
# Project: appeal
# Makefile created by Dev-C++ 4.9.9.0
CPP = g++
CC = gcc
RES =
OBJ = dealappeal.o main.o udpserver.o $(RES)
LINKOBJ = obj/dealappeal.o obj/main.o obj/udpserver.o $(RES)
LIBS = -L"../lib" -lmysqlclient -lpthread -lz
CXXINCS = -I"../include" -I"/usr/include"
BIN = ../../bin/appeald
CXXFLAGS = $(CXXINCS)
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom
rm -f $(LINKOBJ) $(BIN)
$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o $(BIN) $(LIBS)
dealappeal.o: dealappeal.cpp
$(CPP) -c dealappeal.cpp -o obj/dealappeal.o $(CXXFLAGS)
main.o: main.cpp
$(CPP) -c main.cpp -o obj/main.o $(CXXFLAGS)
udpserver.o: udpserver.cpp
$(CPP) -c udpserver.cpp -o obj/udpserver.o $(CXXFLAGS)
cxjddd
2005-03-24
打赏
举报
回复
怎么都不见 TAB 呢?
TangChin
2005-03-24
打赏
举报
回复
“g++编译中得到的 .o 指定存放到一个指定的 OBJ 目录后”
你的makefile中没有实现这个功能吧。
tb01412
2005-03-22
打赏
举报
回复
你读一下MAKE文件的依赖规则就明白是怎么回事了!!!!
mefit
2005-03-22
打赏
举报
回复
不会用的make clean;make all吧
qfxx
2005-03-22
打赏
举报
回复
把makefile 贴出来看看
gaoxianfeng
2005-03-22
打赏
举报
回复
倒
你是mv过去的?
编译目录没有.o文件了
limeigui0725
2005-03-22
打赏
举报
回复
up
sharkhuang
2005-03-22
打赏
举报
回复
加一句
xxx:$(OBJ)
$(CPP) $(LINKOBJ) -o "appeal" $(LIBS)
执行的时候用make xxx
tomjun
2005-03-22
打赏
举报
回复
Makefile如下:
# Project: appeal
# Makefile created by Dev-C++ 4.9.9.0
CPP = g++
CC = gcc
RES =
OBJ = dealappeal.o main.o udpserver.o $(RES)
LINKOBJ = dealappeal.o main.o udpserver.o $(RES)
LIBS = -L"../lib" -lmysqlclient -lpthread -lz
CXXINCS = -I"../include" -I"/usr/include"
BIN = appeal
CXXFLAGS = $(CXXINCS)
.PHONY: all all-before all-after clean clean-custom
all: all-before appeal all-after
clean: clean-custom
rm -f $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o "appeal" $(LIBS)
dealappeal.o: dealappeal.cpp
$(CPP) -c dealappeal.cpp -o dealappeal.o $(CXXFLAGS)
main.o: main.cpp
$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
udpserver.o: udpserver.cpp
$(CPP) -c udpserver.cpp -o udpserver.o $(CXXFLAGS)
tx117
2005-03-22
打赏
举报
回复
楼主不会不知道Makefile吧?
make
零基础教程(Linux系统)
Make
file 自动化 构建
make
是在1977年在贝尔实验室(Bell Labs)研发的 Unix系统中的一款依赖关系检查工具程序(Utility software)。
make
的应用非常广泛,它被用来构建 C、C++ 、Pascal Fortran 等项目,自动化构建生成可执行文件或者库文件。
make
通过读取
Make
file文件以自动化建构软件, 它会根据依赖文件的修改时间进行判断。确定一个target的依赖关系,然后把生成这个target的相关命令传给shell去执行。GNU
make
和大多数版本的
make
之间最重要的区别是 GNU
make
是自由软件,常和GNU
编译
系统一起被使用,是大多数GNU Linux安装的一部分。GNU
make
在
make
file 中具有许多强大的功能,超出了其他
make
版本的功能,它还可以
重新
生成、使用、然后删除不需要保存的中间文件。GNU
make
还有一些非常方便的简单功能。例如,选项“假装
源文件
文件没有更改,即使它已更改。当您向头文件添加新宏时,这非常有用。大多数版本的
make
都会假设它们必须
重新
编译
所有使用头文件的
源文件
,但是如果您知道对头文件的更改不需要
重新
编译
GNU
make
为您提供了一种避免
重新
编译
的方法-o file 。 黄强老师针对零编程基础的同学,精心打磨
make
核心知识点,帮助你快速掌握Linux编程中的
make
的构建!适用人群: 零基础、新手、想快速学习Linux下C、C++编程的童鞋!
make
编译
或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,
make
file还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个...
Linux/Unix开发之
make
和
make
file详解 ---
编译
原理
Linux/Unix开发之
make
和
make
file详解 https://www.xuebuyuan.com/2966577.html 重读《现代
编译
原理》几句小感 https://www.xuebuyuan.com/2966576.html Linux编程之
Make
file(一) ...
Make
file文件
make
命令执行时,需要一个
make
file 文件,以告诉
make
命令如何去
编译
和链接程序。 首先,我们用一个示例来说明
make
file的书写规则。以便给大家一个感性认识。这个示例来源于gnu的
make
使用手册,在这个示例中,...
Linux/Unix环境下的
make
和
make
file详解
无论是在Linux还是在Unix环境中,
make
都是一个非常重要的
编译
命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到
make
或
make
install。利用
make
工具,我们可以将...而且如此多的
源文件
,如果
每次
都要键
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章