CodeBlocks含非英文字符路径下编译出现无输入文件错误求助
解决CodeBlocks+MinGW因路径含非ASCII字符导致的编译错误
问题根源
你遇到的obj\Debug\main.o No such file or directory和error: no input files错误,核心原因是MinGW的GCC工具链对路径中的非ASCII字符(比如你路径里的希腊语字符Υπολογιστής)兼容性不足,无法正确解析路径、创建并识别目标文件。
无需迁移目录的解决办法
修改项目输出目录为纯ASCII路径
- 打开CodeBlocks,选中目标项目,点击顶部菜单栏
Project→Properties - 切换到
Build targets标签页,分别选中Debug和Release目标 - 修改
Output dir(输出文件目录)和Object output dir(目标文件目录)为不含特殊字符的路径,比如C:\Temp\Alekos\Debug、C:\Temp\Alekos\obj\Debug - 保存设置后重新编译项目
- 打开CodeBlocks,选中目标项目,点击顶部菜单栏
强制GCC使用UTF-8编码解析路径
适用于GCC 8及以上版本的MinGW:- 点击CodeBlocks顶部菜单栏
Settings→Compiler - 切换到
Other options标签页,添加以下编译参数:-fexec-charset=UTF-8 -finput-charset=UTF-8 - 若出现链接问题,可在
Linker settings的Other linker options中添加:-Wl,--enable-auto-import - 保存设置后重新编译
- 点击CodeBlocks顶部菜单栏
使用Windows短路径映射
Windows会为含特殊字符的路径分配8.3格式的短路径:- 打开命令提示符(CMD),执行命令:
dir /x C:\Users\gamin\OneDrive\ - 找到
Υπολογιστής对应的短路径名(类似YPOL~1) - 在CodeBlocks中修改项目的存储路径为短路径格式,比如
C:\Users\gamin\OneDrive\YPOL~1\Programming\Cpp\Alekos,保存后重新编译
- 打开命令提示符(CMD),执行命令:
内容的提问来源于stack exchange,提问作者Maximos
相关产品推荐
相关产品推荐

