【问题标题】:GCC: No such file or directoryGCC:没有这样的文件或目录
【发布时间】:2020-06-22 19:43:27
【问题描述】:

我做了一个新项目,并且已经在这个特定问题上卡了几个小时。我正在使用 shell 脚本 (.bat) 文件来编译和构建项目。如果我不使用库,它可以编译并运行良好。但是,当我尝试添加 SDL2 时,我得到了标题中描述的问题。我正在使用 Visual Studio Code,在 tasks.json 中正确设置了所有内容,问题仍然存在。我搬到了 4code,但问题仍然存在。

这是我的 build.bat

@echo off
if not exist build mkdir build
pushd build
gcc ..\source\main.c -o main.exe
gcc -L ..\external\SDL2\include
popd

我在“外部”文件夹中添加了库。它告诉我找不到 SDL.h 文件。我很困惑,因为该文件位于 ..\external\SDL2\include

我从来没有用 C 编码过,所以所有这些编译器业务对我来说都是新的。我已经在网上搜索了几个小时,但找不到解决方案。如有任何帮助,我将不胜感激。

【问题讨论】:

  • 您应该做的第一件事是通过确定您当前的工作目录是已知的来开始您的批处理文件。目前你只是假设它!在这种情况下,最好的方法是确保您可以相对于\source\main.c 和/或\external\SDL2\include,或者更好的\external\SDL2\include\sdl.h。这肯定比创建一个可能丢失的目录然后发现你的工作目录从一开始就不正确更有效。

标签: c batch-file lib


【解决方案1】:

目录添加选项必须与编译命令一起使用。

gcc ..\source\main.c -o main.exe是编译命令不加目录 和 gcc -lSDL2gcc -L ..\external\SDL2\include 不是编译命令 因为它们不包括要编译的内容。

3 个gcc 调用应该是一个调用:

gcc -L ..\external\SDL2\include ..\source\main.c -o main.exe -lSDL2

【讨论】:

  • 谢谢!我已经按照你的描述做了,问题依然存在。 “..\source\main.c:1:10:致命错误:SDL.h:没有这样的文件或目录”我一无所知。逻辑上说这是目录的问题,但一切都是正确的。
猜你喜欢
  • 1970-01-01
  • 2021-05-01
  • 2021-10-31
  • 2021-12-13
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多