由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 关于Makefile的一个问题
相关主题
关于C++ STL编译的疑问C array
最初级的白痴C++问题A C++ compiler related interview question
Intel C++ compiler 求教请教C++中的unordered_set
关于 gcc 和 g++ 的问题Question about friend in C++
Makefile疑问 请问c++为什么会编译失败?
怎么样最好的编译不同文件在同一个VC project里面?请教有关header file的几个问题
[合集] MSVS.Net里面怎么才能显示出每一次compile的完全命令?问个弱的问题:能不能开发两种C++的compiler,一种是编译型的,一种是解释型的
Python problem on 64 bit LinuxC语言重复定义问题
相关话题的讨论汇总
话题: makefile话题: include话题: files话题: 文件话题: 冒号
进入Programming版参与讨论
1 (共1页)
c*********n
发帖数: 128
1
给C++程序的写的Makefile,冒号后面一般带上 .h 文件么?
如果不带上怎么知道冒号前面的这个object 依赖于后面的 .h 文件呢?
比如有时候,可能我写一个很小的object比如叫A,只有A.h文件,没有A.cpp文件。
如果.h文件列在冒号后面,那是不是在下面编译命令的语句里面就不能用"$?"这个
macro了?
否则就回发生 g++ *.h的错误?
l***g
发帖数: 1035
2
are different files

【在 c*********n 的大作中提到】
: 给C++程序的写的Makefile,冒号后面一般带上 .h 文件么?
: 如果不带上怎么知道冒号前面的这个object 依赖于后面的 .h 文件呢?
: 比如有时候,可能我写一个很小的object比如叫A,只有A.h文件,没有A.cpp文件。
: 如果.h文件列在冒号后面,那是不是在下面编译命令的语句里面就不能用"$?"这个
: macro了?
: 否则就回发生 g++ *.h的错误?

c*********n
发帖数: 128
3

Yes, I know that.
Let's say you have three files:
A.h, B.cpp, B.h
you include A.h in B.h, (and of course you include B.h in B.cpp)
then how do you write a Makefile to compile B.cpp?
I know this is probably very basic question, but I am a real rookie......

【在 l***g 的大作中提到】
: are different files
b******n
发帖数: 592
4
写明对.h的依赖关系的好处是,如果.h文件比较新,make就知道哪些东西应该重新编译
。如果仅仅是针对编译命令的话,.h不需要任何显式的处理的

【在 c*********n 的大作中提到】
: 给C++程序的写的Makefile,冒号后面一般带上 .h 文件么?
: 如果不带上怎么知道冒号前面的这个object 依赖于后面的 .h 文件呢?
: 比如有时候,可能我写一个很小的object比如叫A,只有A.h文件,没有A.cpp文件。
: 如果.h文件列在冒号后面,那是不是在下面编译命令的语句里面就不能用"$?"这个
: macro了?
: 否则就回发生 g++ *.h的错误?

c*********n
发帖数: 128
5
So it should be like that?
B : B.cpp A.h
$(G++) B.cpp -o $@

【在 b******n 的大作中提到】
: 写明对.h的依赖关系的好处是,如果.h文件比较新,make就知道哪些东西应该重新编译
: 。如果仅仅是针对编译命令的话,.h不需要任何显式的处理的

b******n
发帖数: 592
6
可以

【在 c*********n 的大作中提到】
: So it should be like that?
: B : B.cpp A.h
: $(G++) B.cpp -o $@

l***g
发帖数: 1035
7
you don't need to write a rule for header files.
#include can be treated as literally. If a header file changes, source will
be recompiled though the source itself doesn't have a different time stamp.
it's compiler's job, you don't need to do it.

【在 c*********n 的大作中提到】
: So it should be like that?
: B : B.cpp A.h
: $(G++) B.cpp -o $@

t****t
发帖数: 6806
8
你用的什么先进make/compiler,这么聪明

will
.

【在 l***g 的大作中提到】
: you don't need to write a rule for header files.
: #include can be treated as literally. If a header file changes, source will
: be recompiled though the source itself doesn't have a different time stamp.
: it's compiler's job, you don't need to do it.

c*********n
发帖数: 128
9
我的理解是,make是一个很简单的程序,检查冒号后面的文件有没有更新,如果有,则
执行下面的命令语句,所以跟compiler没有关系。

will
.

【在 l***g 的大作中提到】
: you don't need to write a rule for header files.
: #include can be treated as literally. If a header file changes, source will
: be recompiled though the source itself doesn't have a different time stamp.
: it's compiler's job, you don't need to do it.

l***g
发帖数: 1035
10
enah.. i was wrong. just tested out gmake with gcc on linux
d****2
发帖数: 6250
11
oops, found this forum for the first time.
Let's say you have three files:
A.h, B.cpp, B.h
you include A.h in B.h, (and of course you include B.h in B.cpp)
then how do you write a Makefile to compile B.cpp?
1 (共1页)
进入Programming版参与讨论
相关主题
C语言重复定义问题Makefile疑问
help!无法编译一个package怎么样最好的编译不同文件在同一个VC project里面?
MATLAB编译的dll怎么被C#调用呢[合集] MSVS.Net里面怎么才能显示出每一次compile的完全命令?
问一个windows下编译openGL code的问题Python problem on 64 bit Linux
关于C++ STL编译的疑问C array
最初级的白痴C++问题A C++ compiler related interview question
Intel C++ compiler 求教请教C++中的unordered_set
关于 gcc 和 g++ 的问题Question about friend in C++
相关话题的讨论汇总
话题: makefile话题: include话题: files话题: 文件话题: 冒号