1 现象
在windows下使用GCC编译工程时,编译通过。使用同样的工程代码,放到Linux (Ubuntu)下编译报错。
报错信息如下:
Makefile:1: *** 多个目标匹配。 停止。

2 原因
1.widows下编译器编译的时候生成的.d 、.o等中间文件Linux下的编译器不认。
2. Windows下的makefile文件中的换行符为“\r\n”,即CRLF。在Linux系统下换行符实际应该为“\n”,即LF。
3. makefile中存在不符合makefile语法的语句,导致编译器无法识别。
3 解决方法
- 删除在Windows下编译生成的所有文件。
例如,我删除的是_build整个文件夹。

- 使用Notepad++等文本编辑器,将windows文件转为Unix文件。

转换前的效果如下:

转换后的效果如下:


本文介绍了在从Windows转移到Linux环境时遇到的编译问题,具体表现为使用GCC编译工程时报‘多个目标匹配’错误。问题根源在于Windows和Linux之间的文件格式差异,包括中间文件不被认可及换行符问题。解决方法包括删除Windows生成的文件,以及使用文本编辑器将文件从Windows格式转换为Unix格式。提供了解决此类问题的详细步骤,并附有参考资料链接。
552

被折叠的 条评论
为什么被折叠?



