当前位置: 技术问答>linux和unix
请教Makefile的问题
来源: 互联网 发布时间:2015-09-08
本文导语: 我写了个很简单的Makefile文件: ---------------------------------------------------------- myFile:myFile.o CC -L/一些目录 -o myFile myFile.o -lX11 -lXi…… myFile.o:myFile.cpp CC -I/一些目录 -c myFile.cpp -------------------...
我写了个很简单的Makefile文件:
----------------------------------------------------------
myFile:myFile.o
CC -L/一些目录 -o myFile myFile.o -lX11 -lXi……
myFile.o:myFile.cpp
CC -I/一些目录 -c myFile.cpp
----------------------------------------------------------
可是当我make时,出错了:(bu42).ow how to make myFile.o
即使Makefile里面只有
--------------------------------------
myFile.o:myFile.cpp
CC -I/一些目录 -c myFile.cpp
--------------------------------------
也是出错:(bu42).ow how to make myFile.cpp
请问如何编制正确的Makefile文件呢?我用的OS是irix
----------------------------------------------------------
myFile:myFile.o
CC -L/一些目录 -o myFile myFile.o -lX11 -lXi……
myFile.o:myFile.cpp
CC -I/一些目录 -c myFile.cpp
----------------------------------------------------------
可是当我make时,出错了:(bu42).ow how to make myFile.o
即使Makefile里面只有
--------------------------------------
myFile.o:myFile.cpp
CC -I/一些目录 -c myFile.cpp
--------------------------------------
也是出错:(bu42).ow how to make myFile.cpp
请问如何编制正确的Makefile文件呢?我用的OS是irix
|
targets : prerequisites
[Tab]command
……
或是这样:
targets : prerequisites ; command
command
……
command是命令行,如果其不与“targets : prerequisites”在一行,那么,必须以[Tab键]开头,如果和prerequisites在一行,那么可以用分号做为分隔
[Tab]command
……
或是这样:
targets : prerequisites ; command
command
……
command是命令行,如果其不与“targets : prerequisites”在一行,那么,必须以[Tab键]开头,如果和prerequisites在一行,那么可以用分号做为分隔
|
将
myFile.o:myFile.cpp
CC -I/一些目录 -c myFile.cpp
改为
myFile.o:myFile.cpp
CC -c myFile.cpp
试一下,将它们放在同一目录下
myFile.o:myFile.cpp
CC -I/一些目录 -c myFile.cpp
改为
myFile.o:myFile.cpp
CC -c myFile.cpp
试一下,将它们放在同一目录下
|
如果排除楼上所说的,那么楼主有没有定义CC宏?
|
可能是CC没有定义
不过引用的时候$(CC)这样
----------------------------------------------------------
include /……/makedefens
myFile:myFile.o
$(CC) -L/一些目录 -o myFile myFile.o -lX11 -lXi……
myFile.o:myFile.cpp
$(CC) -I/一些目录 -c myFile.cpp
----------------------------------------------------------
不过引用的时候$(CC)这样
----------------------------------------------------------
include /……/makedefens
myFile:myFile.o
$(CC) -L/一些目录 -o myFile myFile.o -lX11 -lXi……
myFile.o:myFile.cpp
$(CC) -I/一些目录 -c myFile.cpp
----------------------------------------------------------
|
想不明白
|
最好把makefile贴的完整一点,这样才好判断,感觉好像是myFile.o那行不起作用,会不会跟前面一行连在一起了,比如前一行末尾是连续符?或者这行开头有不可见的控制字符?
|
那就放到其他机器上试试。
查看myFile.o:myFile.cpp这行后面有没有其他非打印字符,用二进制编辑工具看。
查看myFile.o:myFile.cpp这行后面有没有其他非打印字符,用二进制编辑工具看。
|
你用gcc代替CC试试
|
myFile:myFile.o有这句话就应该知道怎么make
|
hello.o:hello.cpp
这行的:后加个空格试试,如
hello.o: hello.cpp
这行的:后加个空格试试,如
hello.o: hello.cpp