linux下的make命令使用问题

写好的makefile文件以及多个c文件存储在/media/FOREVER/program目录下,在终端输入$make/media/FOREVER/program/Mak... 写好的makefile文件以及多个c文件 存储在 /media/FOREVER/program目录下,
在终端输入 $ make /media/FOREVER/program/Makefile,
输出提示 make: 对“/media/FOREVER/program”无需做任何事。
这是怎么回事呢?
我的Makefile文件内容是:
CC = gcc
INCLUDE = -I/home/zss/hontani/lib/include
LIBDIR = -L/home/zss/hontani/lib/
CFLAGS = -g ${INCLUDE}
LIB = -lnrd -lm
all: Draw
DRAWLINE_OBJ = mainV.o Fleme0.o Fleme1.o Fleme2.o Fleme3.o \
bin1.o srr1.o chain.o clip.o shape1.o shape2.o shape3.o\
asphalt0.o PaintOut1.o deletion.o shape4.o\
indication.o harris.o blockmatching.o pointplot.o \
block_scale.o \
# MyOwnFunction2.o
SUB_OBJ = PickoutFile.o PickoutFileHead.o
.c.o:
${CC} ${CFLAGS} -c $<
clean:
\rm -f ${ANISO_OBJ} ${SUB_OBJ} core ${DRAWLINE_OBJ} *~
Draw: ${DRAWLINE_OBJ} ${SUB_OBJ}
${CC} ${LIBDIR} -o $@ ${DRAWLINE_OBJ} ${SUB_OBJ} ${LIB}

再输入 gcc /media/FOREVER/program/mainV.c ,显示如下:
/media/FOREVER/program/mainV.c: 在函数‘main’中:
/media/FOREVER/program/mainV.c:135:5: 警告:隐式声明与内建函数‘strcpy’不兼容
/tmp/ccvqliY3.o: In function `main':
mainV.c:(.text+0xecd): undefined reference to `BlockMatching'
………………后面类似,省略
collect2: ld 返
展开
 我来答
编码艺术家
2011-05-07 · 超过26用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:35万
展开全部
你的 $ make /media/FOREVER/program/Makefile 改为
输入 $ make -f /media/FOREVER/program/Makefile 就是加一个-f参数。
但是我不推荐这么做,最好是进入到目录再执行,因为Makefile中有可能用到Shell脚本找文件。

希望我的回答可以解决你的问题~
枉费麻烦7263
2011-05-04 · TA获得超过1549个赞
知道小有建树答主
回答量:1398
采纳率:100%
帮助的人:589万
展开全部
打错了罢? 是make && make intall
&& 是 shell 的逻辑 and (和), 如果前面的命令执行失败,(true or flase)
退出状态不是 0 , 就不会执行后面的命令 ,
最后命令的退出状态会在 shell 默认变量 $? 找到, 例

nc10@your-5554c55be4 ~
$ ls
Mail/ doc/ hh* matrix/ sign.dat trash
News/ ee* junk numsorted* socket.awk* ttt.awk*
bin/ ex30.sh* lib/ pp* software/
crack_allword.txt hex2dec.awk lynx.cfg sign tmp/

nc10@your-5554c55be4 ~
$ test -f "pp" && echo "yes, you have it"
yes, you have it

nc10@your-5554c55be4 ~
$ echo $?
0

nc10@your-5554c55be4 ~
$ test -f "lllll" && echo "yes, you have it"

nc10@your-5554c55be4 ~
$ echo $?
1

nc10@your-5554c55be4 ~
$
第二次执行测试文件 lllll,没有这文件, test名令执行失败,
( 条件为假(flase)), 随后的命令就不执行

nc10@your-5554c55be4 ~
$ test -f "lllll" ; echo "yes, you have it"
yes, you have it

nc10@your-5554c55be4 ~
$

分开两个命令,那不管前面执行如何,随后的还是会执行

如果分成两 make ; make install, 那make编译有错误的话,还是会照样
install , 但安装的程序不能用哦.

Is that clear? :)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Winshining
2011-05-02 · TA获得超过460个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:206万
展开全部
make -f /media/FOREVER/program/Makefile
make默认会在当前文件夹下依次查找GUNmakefile makefile Makefile,如果都没找到就需要你给它指定一个非常规名称的makfile文件,就需要使用-f选项。
追问
输入之后显示  make: *** 没有规则可以创建“Draw”需要的目标“mainV.o"。停止
追答
block_scale.o \ 最后的“\”去掉, ${CC} ${CFLAGS} -c $< 修改成${CC} ${CFLAGS} -o $@ -c $<,祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l907816371
2011-05-01 · TA获得超过1152个赞
知道小有建树答主
回答量:1908
采纳率:0%
帮助的人:1163万
展开全部
好像 只要 cd /media/FOREVER/program/
make
就可以知道搜索makefile
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天__火
2011-05-01 · TA获得超过891个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:445万
展开全部
已经编译过了,你可以先执行一下make clean。
追问
可是我输入make clean,显示make: *** 没有规则可以创建目标“clean”。 停止。
怎么回事?
追答
可能是你的Makefile有问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天津老山
2011-05-01 · 超过80用户采纳过TA的回答
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:152万
展开全部
版本不对,或者编译器坏了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式