【问题标题】:C Compile Error (No such file or directory, compilation terminated)C 编译错误(没有这样的文件或目录,编译终止)
【发布时间】:2014-03-13 11:52:02
【问题描述】:

我在 Windows 上尝试学习一些 OpenGL。我安装了 mingw 并有一个测试文件。 我将 test.c 文件放在 glut 文件夹中,其中包含 glut32.dll 和库文件等 glut 文件。 我在 cmd 中使用 mingw 来运行文件:

gcc opengl.c -o opengl -lGL -lGLU -lglut

我得到了这个错误:

opengl.c:1:23 fatal error: GLUT/glut.h: No such file or directory
#include <GLUT/glut.h>

编译终止。

不知道我做错了什么,有人知道吗?谢谢!

【问题讨论】:

  • 你安装glut开发包了吗? GLUT/glut.h 在编译器默认包含搜索路径吗?
  • 尝试使用-I选项指定具有头文件的目录的路径。
  • 如果您在 *nix 系统下,标题名称区分大小写。
  • @Mauren 我正在运行 Windows 8。按照网站上的说明进行操作,没有运气
  • @Mauren MinGW 是一个 Windows 编译器。

标签: c compilation cmd mingw glut


【解决方案1】:

首先,您需要检查GLUT 文件夹中是否有glut.h 文件。

然后使用-I 命令行选项告诉编译器在哪里找到它(注意,它是大写i,而不是1l):

$ gcc -I/path/to/folder opengl.c -o opengl -lGL -lGLU -lglut

在上面的命令中,将/path/to/folder替换为GLUT文件夹所在的文件夹。

您可能还需要告诉链接器库在哪里,这可以通过-L 选项完成:

$ gcc -I/path/to/folder opengl.c -o opengl -L/path/to/libs -lGL -lGLU -lglut

【讨论】:

  • 我删除了 GL/ 并且我使用了 include "glut.h" 而不是 并且它工作但给了我很多关于缺少库的错误。 .c 文件位于 glut 文件夹内,所以我认为它可以工作。每次运行时是否必须指定 -I 路径和 -L 路径,或者我可以设置它们吗?另外,我就在那里试过。我做了 -L 但它说它找不到任何额外的元素,比如 -lGl 和所有
  • @AndyOHart如果您不将标头/库复制到编译器默认查看的任何位置,则必须添加这些标志。
  • @AndyOHart 参见例如here 了解如何找出默认包含搜索路径。
  • @AndyOHart 要找出库的默认搜索路径,请运行命令gcc -print-search-dirs | grep libraries
  • @AndyOHart 跳过管道和grep 部分,这只是意味着你会得到一些不相关的数据。
【解决方案2】:

USER DEFINED HEADERS SYNTAX IS #include "name of file.h" .... 没有“" .... 因为这只是要求编译器检查其目录所有的头文件都被存储了……“”要求编译器检查当前目录……当然要确保头文件与你的 main.c 定义在同一目录中

【讨论】:

  • 我不认为&lt;GLUT/glut.h&gt; 是用户定义的头文件,顺便说一句,所有常见的编译器(如 gcc)都会检查当前目录中的头文件,如果在其他地方找不到它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-19
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 2012-04-24
  • 1970-01-01
相关资源
最近更新 更多