批处理编译生成exe后无法执行:架构匹配仍报错,求排查
排查方向
- 错误的执行方式:你在Windows批处理里用
bash ./main.exe是完全错误的操作。Windows下的exe是原生可执行文件,直接在cmd环境里运行main.exe(或对应编译生成的文件名)即可,不需要通过bash调用——bash是类Unix系统的shell,无法直接执行Windows PE格式的可执行文件。 - 编译输出文件名不匹配:你的编译命令是
gcc main.c lib/recipe.o -o main,这会生成名为main的可执行文件,而非你后续调用的main.exe。文件不存在是报错的核心原因之一,要么把编译命令改成gcc main.c lib/recipe.o -o main.exe,要么直接运行生成的main文件。 - 确认gcc的目标平台:虽然你说架构匹配,但要确认你的gcc是针对Windows x86-64编译的版本(比如MinGW-w64),而非Linux交叉编译gcc。运行
gcc -v查看目标平台信息,确保输出里包含target: x86_64-w64-mingw32这类标识。 - 检查编译过程完整性:编译时如果有警告或错误,可能导致生成的可执行文件不完整。重新执行编译命令,仔细查看是否有编译报错,确保
lib/recipe.o和最终可执行文件都正常生成。
内容的提问来源于stack exchange,提问作者retlok
相关产品推荐
相关产品推荐

