发新话题
打印

关于make文件的小小疑问

关于make文件的小小疑问

在 make文件中
9 {& C7 E  U1 t- v( z; {$ K& binstall: foo
' p( ^* y2 |/ _8 M* W          if [ -d bb ];
1 J' W6 j% S! |( t; Y1 V        then
( V! c- B7 G: Z" o0 ~+ H        cd bb;( z! [  K1 j" V1 z8 E
        echo $((pwd));/ R; z+ N2 T) b0 `% p- ^4 W+ R: k
        rm 1.o;
) X6 P1 V% Q( t4 m2 C2 Q        rm 2.o;& j. d/ y. M6 `" _( W2 R
        fi8 B! }' y% {0 G1 Z/ G: W/ c, k7 ?
                                                                                
- q9 z( F6 f9 a1 N% B% P; R. Q) N/ b* E
install: foo
8 y( F6 v" q* R& g8 w$ T          if [ -d bb ]; \
+ X5 }6 u# R7 l9 c        then  \
+ e2 K( q6 O4 W4 Z. e        cd bb;  \( L% p; v& s1 c7 N2 ?" u
        echo $((pwd));  \
4 U, z7 A# B" r% G& _0 u        rm 1.o;  \8 o$ d+ ~! v* k5 R. H$ i, R* S+ i9 z
        rm 2.o;  \- S1 D% y! H  e: ^1 h. a, Y5 v
        fi3 k) m/ L6 C8 x* |$ |* G
" \ "  作用是什么 ?
1 C3 O! O4 N( N2 [1 _" Y& W. j( B我直接用 make  foo.c 通过了0 P" f( J0 @# @6 j
当我 写了一个make文件( 只写了倚赖关系 foo.o: foo.c stdlib.h stdio.h)后 用 make -f mymake 是,提示我  :    make: *** 没有规则可以创建“foo.o”需要的目标“stdlib.h”。 停止。 为什么,是因为我没写库的路径吗?      

TOP

\是换行& R+ {; u# C, ]" f

" y% j6 D- `3 K9 ~2 p你可以用-M编译CPP文件然后自动生成依赖关系      

TOP

这里的 \ 是续行符。      

TOP

在上面的例子里,用续行符有什么作用呢?
5 E( ~" c( u. ?/ `9 t换行符和回车符有什么区别?. C: i$ v- S/ _& B7 _

( A* M, {0 b/ A. l6 D( M9 Z   你可以用-M编译CPP文件然后自动生成依赖关系
2 l$ |( j, L% G   那又如何,也是生成我写的依赖关系啊?      

TOP

不知道,你是什么意思,\是转换行,应该没有什么问题阿!      

TOP

为什么在我的系统(fc 2 )里,不能在依赖关系里写头文件,否则会报没有规则创建*.h 文件。      

TOP

是不是都由现在的gcc预处理功能来实现了?      

TOP

foo.o: foo.c stdlib.h stdio.h
% E% G/ i( e1 q, w有这么写的吗?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

有啊,我的《linux程序设计》第二版里的例子就是这样写的啊。
  e: K; l+ \8 v# ^书号是: ISBN 7-111-09322-4         机械工要*霭嫔?1 F1 F! A6 C& y, Z/ @

8 p! ]4 d1 ~; q# b* I3 v难道这么写是老用法,现在的make不支持了?      

TOP

有啊,我的《linux程序设计》第二版里的例子就是这样写的啊。
$ V/ S( S4 J, J: s书号是: ISBN 7-111-09322-4    机械工要*霭嫔?& o/ e/ J9 X4 e  {( C1 K) m
/ e7 q. l# ]7 M1 q; t! D( _/ q
难道这么写是老用法,现在的make不支持了?      

TOP

发新话题