只有一个test_array.c文件,平时测试用gcc test_array.c -o test_array是正常的,今天,我尝试用makefile来进行编译运行
现在报错如下:请问下这是啥情况?好像和stdio.h有关吗?
make :*** no rule to make target 'stdio.h',needed by 'test_array.o'停止
makefile文件中的内容如下:
objects = test_array.o
edit : $(objects)
gcc -o edit $(objects)
test_array.o : stdio.h
.PHONY : clean
clean :
rm edit $(objects)
<pre>
CC=gcc object=test_array.o
TARGET=edit
all:$(TARGET) $(TARGET):$(object) $(CC) $^ -o $@ %.o: %.c $(CC) -c $< -o $@
.PHONY : clean clean : rm $(object) $(TARGET)
<pre><code>objects = test_array.o
edit: $(objects) gcc -o edit $(objects)
test_array.o : test_array.c gcc -c test_array.c -o test_array.o
.PHONY : clean clean : rm edit $(objects)
test_array.o不用指明依赖stdio.h,只用指明依赖test_array.c即可
<div class='ref'><h4>引用来自“南泉先生”的评论</h4>test_array.o不用指明依赖stdio.h,只用指明依赖test_array.c即可
一楼给的答案你试过吗?
<p>就是用他的代码测试的,也是报错,我再检查检查吧</p>
<div class='ref'><h4>引用来自“南泉先生”的评论</h4><pre>
CC=gcc object=test_array.o
TARGET=edit
all:$(TARGET) $(TARGET):$(object) $(CC) $^ -o $@ %.o: %.c $(CC) -c $< -o $@
.PHONY : clean clean : rm $(object) $(TARGET)
<div class='ref'><h4>引用来自“南泉先生”的评论</h4>test_array.o不用指明依赖stdio.h,只用指明依赖test_array.c即可
你可以了解一下“环境变量”的概念,当你的头文件路径包含在“环境变量”中时,编译器在编译时是可以据此找到对应头文件的,若某个头文件不在当前目录中,也不包含在任何环境变量中,此时就要明确指出该头文件在哪儿。在makefile中通常用"INCLUDE=-Iyourincludepath"指明要包含的头文件目录。
<div class='ref'><div class='ref'><h4>引用来自“南泉先生”的评论</h4>test_array.o不用指明依赖stdio.h,只用指明依赖test_array.c即可
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。