make: *** 没有规则可以创建“all”需要的目标“test.o”。 停止。

qq_38861517 2018-06-21 05:56:03
源代码:
CC=gcc
FLAGS=-I/opt/sqlite3/x86/include -L/opt/sqlite3/x86/lib -lsqlite3

exe=test-pc
obj:=test.o
all:$(obj)
$(CC) -o $(exe) $(obj) $(FLAGS)
%.o : %.c
$(CC) -c $^ -o $@ $(FLAGS)
clean:
rm -rf $(obj) $(exe)
...全文
2633 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
花开花落_fzu 2018-07-04
  • 打赏
  • 举报
回复
$(CC) -o $(exe) $(obj) $(FLAGS)和$(CC) -c $^ -o $@ $(FLAGS)前面你加TAB键了吗
make是在1977年在贝尔实验室(Bell Labs)研发的 Unix系统中的一款依赖关系检查工具程序(Utility software)。make的应用非常广泛,它被用来构建 C、C++ 、Pascal  Fortran 等项目,自动化构建生成可执行文件或者库文件。make通过读取Makefile文件以自动化建构软件, 它会根据依赖文件的修改时间进行判断。确定一个target的依赖关系,然后把生成这个target的相关命令传给shell去执行。GNU make 和大多数版本的 make 之间最重要的区别是 GNU make 是自由软件,常和GNU编译系统一起被使用,是大多数GNU Linux安装的一部分。GNU makemakefile 中具有许多强大的功能,超出了其他 make 版本的功能,它还可以重新生成、使用、然后删除不需要保存的中间文件。GNU make 还有一些非常方便的简单功能。例如,选项“假装源文件文件没有更改,即使它已更改。当您向头文件添加新宏时,这非常有用。大多数版本的 make 都会假设它们必须重新编译所有使用头文件的源文件,但是如果您知道对头文件的更改不需要重新编译 GNU make 为您提供了一种避免重新编译的方法-o file 。 黄强老师针对零编程基础的同学,精心打磨make核心知识点,帮助你快速掌握Linux编程中的make的构建!适用人群: 零基础、新手、想快速学习Linux下C、C++编程的童鞋!

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧