我试图编译一个程序,其中包括graphics.h
头文件为C.我已经添加了graphics.h
和winbgim.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?
6条答案
按热度按时间ippsafx71#
graphics.h
是一个非标准的头文件。它很可能是指Turbo C DOS编译器的旧BGI图形库。它只能在特定的编译器上工作。当然,DOS现在是一个完全过时的操作系统。如果你对3D图形编程感兴趣,那么OpenGL和/或DirectX确实是更好的现代替代品,得到了许多编译器的支持。
flvlnr442#
如果你试图在code::blocks IDE中编译包含“graphics. h”的源代码,你必须设置
winBGIm
库。WinBGIm
或使用(direct link)graphics.h
,转到行**302
**将int right=0
更改为int top=0
graphics.h
和winbgim.h
文件复制到编译器目录的include文件夹中。libbgi.a
复制到编译器目录的lib文件夹Settings
〉〉Compiler and debugger
〉〉linker settings
Add
按钮,浏览并选择libbgi.a
文件-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
Ok
您也可以查看this video教程。
f3temu5u3#
当你编译一个包含graphics. h头文件的C源代码时,你需要将文件扩展名改为. cpp。如果不这样做,你会得到“致命错误:sstream:no such file directory”错误。
因此,只需将.c扩展名更改为. cpp。如果您使用Code::Blocks运行代码,则可以使用step-by-step procedure编译graphics. h源代码。
nafvub8i4#
sstream错误只有在你使用gcc而不是g编译时才会发生,试着使用g或者把程序转换成c++,据我所知(因为我是这个语言的新手,但是我以前遇到过这个错误)所以祝你好运
w3nuxt5m5#
如果最高答案不起作用,您将得到:
error: narrowing conversion of 'x' from 'int' to 'short unsigned int'
遵循this教程,并在提供的winBGIm源链接中使用bug修复的头文件/库(
winBGIm(bug-free).rar
),在Windows 10中对我有效。Mirror到
winBGIm(bug-free_.rar)
编译:
g++ example.cpp -Wall -m32 -std=c++11 -pedantic -g -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 -o example.exe
j9per5c46#
这个过程是abosuritly正确的.做这个过程一步一步你的代码编译和执行.改变你的程序的扩展名.c到.cpp step1. https://youtu.be/CHFyEnlMnxg通过这个视频跟随所有步骤.