C语言中编写makefile遇到的问题

自己在博客中写了由几个文件构成的代码,最后生成了一个静态库叫做libsum.a,里面保存着几个供main()
函数调用的函数,自己最后再把这个库和mian.c文件一起编译。可是makefile中一直报错
(具体的错误在博客最后面写出来了,我感觉不知道为什么?我用gcc -o 有问题吗?)
自己写的博客

感谢大家,感谢平台。

gcc -o 就是指定输出文件名。

make: *** No rule to make target `main.c', needed by `main'.  Stop. 

错误代码显示makefile的规则问题,
makefile定义规则不正确,我的博文《Make自动化编译工具》也许有助力,专为你的问题写的。

提示指明是 main 对应的规则有问题

这样的报错还真是死性,正好对我胃口。

我的解决方法思路:

  • 将 main 规则修改成这样:main: libsum.a 就是拿掉main.c,因为错误提示就是加入这个依赖项产生的。
  • 注意一下GCC的命令行使用方法:Usage: gcc [options] file...你写的格式是倒过来的 GCC files... [options] 使用共享库的正确的gcc命令行: gcc -L/home/wuguannan/c/lib -o /home/wuguannan/c/main /home/wuguannan/c/source/main.c -lsum
  • 将main规则定义提到makefile的最前面,因为这才是最终想的输出,应该前置。