make error 127

lijiliang66ds 2018-03-21 03:05:39
编写makefile的时候,遇到一个问题:
执行make命令后,反馈的结果是
make: gcc: Command not found
make: *** [../bin/service] Error 127
然后在系统中重新确认了下gcc等等工具,确认都是正常安装的。

之后再仔细检查makefile文件时,发现有一处变量定义和系统的path冲突,
导致make执行到path这个变量后,系统的path环境变量被临时替换了,
所以也就无法执行之后的编译,清除命令。
PATH = $(shell find $(SOURCE_PATH) -maxdepth 3 -type d)
这里将PATH修改PATHS后,makefile正常执行。

所以以后再编写makefile文件,定义变量时,不要和系统已有的环境变量名称重名
...全文
5244 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
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++编程的童鞋!

488

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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