简简单单的makefile居然出错,怎么回事啊?求解?
三个源文件,mai.c,student.cadt_search_tree.c两个头文件stuent.h和adt_search_tree.h,makefile内容如下:#m...
三个源文件,mai.c,student.c adt_search_tree.c 两个头文件stuent.h 和adt_search_tree.h,
makefile内容如下:
#makefile:
objects = main.o student.o adt_search_tree.o
studentsysterm : $(objects)
gcc -o studentsysterm $(objects)
$(objects) : student.h adt_search_tree.h
main.o : main.c
student.o : student.c adt_search_tree.h
adt_search_tree.o : adt_search_tree.h
.PHONY : clean
clean :
rm studentsysterm $(objects)
执行make出错如下
[root@localhost StudentSysterm]# make
gcc -o studentsysterm main.o student.o adt_search_tree.o
gcc: adt_search_tree.o :没有那个文件或目录
make: *** [studentsysterm] 错误 1
[root@localhost StudentSysterm]#
真是不解,list却有该文件,但又没有目标文件,
[root@localhost StudentSysterm]# ll
总用量 120
-rw-r--r--. 1 root root 12585 7月 28 23:23 adt_search_tree.c
-rw-r--r--. 1 root root 12579 7月 28 23:22 adt_search_tree.c~
-rw-r--r--. 1 root root 1239 7月 27 20:08 adt_search_tree.h
-rw-r--r--. 1 root root 2752 7月 28 23:23 adt_search_tree.o
求解why?? 展开
makefile内容如下:
#makefile:
objects = main.o student.o adt_search_tree.o
studentsysterm : $(objects)
gcc -o studentsysterm $(objects)
$(objects) : student.h adt_search_tree.h
main.o : main.c
student.o : student.c adt_search_tree.h
adt_search_tree.o : adt_search_tree.h
.PHONY : clean
clean :
rm studentsysterm $(objects)
执行make出错如下
[root@localhost StudentSysterm]# make
gcc -o studentsysterm main.o student.o adt_search_tree.o
gcc: adt_search_tree.o :没有那个文件或目录
make: *** [studentsysterm] 错误 1
[root@localhost StudentSysterm]#
真是不解,list却有该文件,但又没有目标文件,
[root@localhost StudentSysterm]# ll
总用量 120
-rw-r--r--. 1 root root 12585 7月 28 23:23 adt_search_tree.c
-rw-r--r--. 1 root root 12579 7月 28 23:22 adt_search_tree.c~
-rw-r--r--. 1 root root 1239 7月 27 20:08 adt_search_tree.h
-rw-r--r--. 1 root root 2752 7月 28 23:23 adt_search_tree.o
求解why?? 展开
1个回答
展开全部
多半是makefile文件里zlib的默认路径有误
安装 libpng
用以下命令安装 libpng:
make prefix=/usr \
ZLIBINC=/usr/include ZLIBLIB=/usr/lib -f scripts/makefile.linux &&
make prefix=/usr install -f scripts/makefile.linux
命令解释
CC="gcc $CFLAGS" : 让 libpng 在编译时用 CFLAGS .
ZLIBINC=/usr/include ZLIBLIB=/usr/lib : 强制libpng去找我们已安装的zlib的includes 和库文件目录.
-f scripts/makefile.linux : 指出make是用Linux版本的makefile.因为libpng没有用autoconf的惯例方式, 而是针对于不同的平台有不同的makefile.
安装 libpng
用以下命令安装 libpng:
make prefix=/usr \
ZLIBINC=/usr/include ZLIBLIB=/usr/lib -f scripts/makefile.linux &&
make prefix=/usr install -f scripts/makefile.linux
命令解释
CC="gcc $CFLAGS" : 让 libpng 在编译时用 CFLAGS .
ZLIBINC=/usr/include ZLIBLIB=/usr/lib : 强制libpng去找我们已安装的zlib的includes 和库文件目录.
-f scripts/makefile.linux : 指出make是用Linux版本的makefile.因为libpng没有用autoconf的惯例方式, 而是针对于不同的平台有不同的makefile.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
金山毒霸
2024-10-31 广告
2024-10-31 广告
大部分系统错误,是因为某些DLL文件丢失造成的,比如未安装DirectX9或DirectX 9.0组件已损坏、缺少Visual C ++库、未安装.net库。解决方法如下:一、 手动解决方法1、先确定电脑操作系统是多少位的,现在的电脑一般都...
点击进入详情页
本回答由金山毒霸提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询