You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C项目构建报No such file or directory无法生成exe问题排查

C项目构建报No such file or directory无法生成exe的修复方案

问题根因

报错和文件存放路径、glad代码本身无关,完全是Windows批处理构建脚本的语法写法错误,导致源文件、依赖库路径没有被正确传递给CL编译器,最终编译失败。调试器能正常运行是因为IDE使用独立的配置项识别项目文件,和手动编写的构建脚本逻辑不互通。

脚本存在的具体错误

  • set变量赋值语法错误:set是cmd的单行命令,原脚本把下一个set libs的关键字写到了set files赋值行的尾部,还把libs的多个库路径拆成了独立的无命令行,最终%files%和%libs%两个变量展开后内容完全不符合预期。
  • CL编译命令被错误硬换行:长命令直接换行不会被cmd识别为同一条命令,/link参数和后续的库路径、输出参数被拆成了独立的无效命令片段,参数传递断裂。

正确的构建脚本

把原有构建脚本替换成以下内容即可,长参数换行需要在行尾加^作为续行标记,路径建议加双引号兼容可能出现的空格:

@echo off
set files=src\glad.c src\main.c
set libs=C:\Users\Ozzy\Documents\projects\c\lib\SDL2main.lib ^
C:\Users\Ozzy\Documents\projects\c\lib\SDL2.lib ^
C:\Users\Ozzy\Documents\projects\c\lib\freetype.lib

CL /Zi /I "C:\Users\Ozzy\Documents\projects\c\include" %files% /link %libs% /OUT:mygame.exe
pause

验证说明

  • 贴出的glad加载器代码头文件引用写法正确,只要include目录下存放了glad.h和配套的khrplatform.h,头文件搜索不会出现找不到的问题。
  • 执行脚本前可以在cmd中先运行echo %files%、echo %libs%,确认打印内容包含所有源文件、依赖库的完整路径,再执行编译即可正常生成mygame.exe。

内容的提问来源于stack exchange,提问作者Ozzy1994

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:42:25