C语言 编译器找不到sstream?

qkf9rpyu  于 2023-03-22  发布在  其他
关注(0)|答案(6)|浏览(409)

我试图编译一个程序,其中包括graphics.h头文件为C.我已经添加了graphics.hwinbgim.h头文件在包含文件夹,也libbgi.a到lib文件夹.
为了测试,我编写了一个简单的hello world程序,并包含了graphics.h头文件。
但在编译时,我得到了以下错误:
在文件中,包括从firstc.c:2:0:c:\mingw\bin../lib/gcc/mingw32/4.7.1/../../../../include/graphics.h:30:59:致命错误:sstream:未终止此类文件或目录编译。
我也试着在其他论坛上搜索,在那里也有人问过同样的问题,但没有得到答案。
另一个问题,我遇到了其他图形选项的C和C++像openGL和DirectX。我应该学习这些,而不是graphics.h?

ippsafx7

ippsafx71#

graphics.h是一个非标准的头文件。它很可能是指Turbo C DOS编译器的旧BGI图形库。它只能在特定的编译器上工作。当然,DOS现在是一个完全过时的操作系统。
如果你对3D图形编程感兴趣,那么OpenGL和/或DirectX确实是更好的现代替代品,得到了许多编译器的支持。

flvlnr44

flvlnr442#

如果你试图在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文件夹
  • 在代码中::blocks open Settings〉〉Compiler and debugger〉〉linker settings
  • 单击链接库部分的Add按钮,浏览并选择libbgi.a文件
  • 在右边部分(即其他链接器选项)粘贴命令

-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32

  • 单击Ok

您也可以查看this video教程。

f3temu5u

f3temu5u3#

当你编译一个包含graphics. h头文件的C源代码时,你需要将文件扩展名改为. cpp。如果不这样做,你会得到“致命错误:sstream:no such file directory”错误。
因此,只需将.c扩展名更改为. cpp。如果您使用Code::Blocks运行代码,则可以使用step-by-step procedure编译graphics. h源代码。

nafvub8i

nafvub8i4#

sstream错误只有在你使用gcc而不是g编译时才会发生,试着使用g或者把程序转换成c++,据我所知(因为我是这个语言的新手,但是我以前遇到过这个错误)所以祝你好运

w3nuxt5m

w3nuxt5m5#

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

  • error: narrowing conversion of 'x' from 'int' to 'short unsigned int'
  • 图形窗口不显示

遵循this教程,并在提供的winBGIm源链接中使用bug修复的头文件/库(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

j9per5c4

j9per5c46#

这个过程是abosuritly正确的.做这个过程一步一步你的代码编译和执行.改变你的程序的扩展名.c到.cpp step1. https://youtu.be/CHFyEnlMnxg通过这个视频跟随所有步骤.

相关问题