#include <graphics.h> </graphics.h>导致错误

时间:2015-01-08 11:28:41

标签: c graphics include

我正在尝试编译包含C的graphics.h头文件的程序。我已在include文件夹中添加了graphics.hwinbgim.h头文件以及{{1}到lib文件夹。

为了测试,我制作了一个简单的hello world程序,并包含了libbgi.a头文件。

但在编译时我收到以下错误:

  

在firstc.c:2:0中包含的文件中:   C:\ MinGW的\ BIN ../ LIB / GCC /的mingw32 / 4.7.1 /../../../../包括/ graphics.h中:30:59:   致命错误:sstream:没有这样的文件或目录编译   终止。

我也尝试在其他论坛中搜索,问过同样的问题,但无法得到答案。

另一个问题是,我遇到了C和C ++的其他图形选项,如openGL和DirectX。我应该学习这些而不是graphics.h吗?

5 个答案:

答案 0 :(得分:7)

graphics.h是非标准标头。最有可能的是它指的是Turbo C DOS编译器的旧BGI图形库。它只适用于特定的编译器。当然,DOS现在是一个完全过时的操作系统。

如果您对3D图形编程感兴趣,那么OpenGL和/或DirectX确实是更好的,现代的替代方案,得到了许多编译器的支持。

答案 1 :(得分:2)

如果您尝试使用code :: blocks IDE中的“graphics.h”编译源代码,则必须设置winBGIm库。

  • http://winbgim.codecutter.org/下载WinBGIm或使用(direct link
  • 提取它。
  • 打开graphics.h,转到 302 ,将int right=0更改为int top=0
  • graphics.hwinbgim.h文件复制到编译器目录的include文件夹中。
  • libbgi.a复制到编译器目录的lib文件夹
  • 在code :: blocks open Settings&gt;&gt; Compiler and debugger&gt;&gt; linker settings
  • 点击链接库部分中的Add按钮,浏览并选择libbgi.a文件
  • 在右侧部分(即其他链接器选项)粘贴命令
    -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
  • 点击Ok

您还可以查看this video教程。

Compiler options

答案 2 :(得分:1)

当您编译具有graphics.h头文件的C源代码时,您需要将文件扩展名更改为.cpp。如果不这样做,您将收到“致命错误:sstream:no such file directory”错误。

因此,只需将.c扩展名更改为.cpp即可。如果您正在使用Code :: Blocks运行代码,那么编译graphics.h源代码step-by-step procedure

答案 3 :(得分:1)

据我所知,仅当您使用gcc而不是g ++进行编译,尝试使用g ++或将程序转换为c ++时,才会发生sstream错误(因为我是该语言的新手,但之前我曾遇到过此错误)祝你好运

答案 4 :(得分:0)

如果最佳答案不起作用,您将得到:

  • error: narrowing conversion of 'x' from 'int' to 'short unsigned int'

  • 您的图形窗口没有出现

    按照this教程并在提供的winBGIm源链接中使用错误修复的标题/库(winBGIm(bug-free).rar)在Windows 10中对我有用。

MirrorwinBGIm(bug-free_.rar)

编译为:g++ example.cpp -Wall -m32 -std=c++11 -pedantic -g -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 -o example.exe