问题描述
- 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的最前面,因为这才是最终想的输出,应该前置。
时间: 2024-11-01 17:22:57