如何在Windows的GCC编译器中为C语言添加<graphics.h>头文件
在Windows GCC环境下添加C语言图形功能的解决方案
方案一:用WinBGIm库兼容原graphics.h语法
graphics.h是Turbo C时代的老旧头文件,GCC默认不支持,WinBGIm是针对MinGW(Windows下的GCC环境)做的兼容实现,操作步骤如下:
- 下载包含
graphics.h、winbgim.h和libbgi.a的压缩包 - 在PowerShell中执行命令,将头文件复制到MinGW的include目录(替换为你的MinGW实际安装路径):
Copy-Item ".\graphics.h" "C:\MinGW\include" Copy-Item ".\winbgim.h" "C:\MinGW\include" - 再将静态库文件复制到MinGW的lib目录:
Copy-Item ".\libbgi.a" "C:\MinGW\lib" - 编译C程序时,必须链接依赖的Windows系统库,比如编译
test.c:
注:gcc test.c -o test.exe -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32-lbgi链接WinBGIm的库,后面的参数是Windows图形相关的系统依赖库,缺一不可。
方案二:使用SDL2库(现代跨平台图形方案)
如果不想局限于老旧的graphics.h语法,SDL2是更现代的C语言图形/多媒体库,Windows下适配GCC的步骤:
- 下载MinGW版本的SDL2开发包,解压后得到
include/SDL2文件夹和lib下的libSDL2.a、libSDL2main.a - 在PowerShell中复制头文件和库:
Copy-Item -Recurse ".\SDL2" "C:\MinGW\include" Copy-Item ".\libSDL2.a" "C:\MinGW\lib" Copy-Item ".\libSDL2main.a" "C:\MinGW\lib" - 示例C代码(创建一个基础窗口):
#include <SDL2/SDL.h> int main(int argc, char* argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_Window* win = SDL_CreateWindow("SDL2 C Graphics", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, 0); SDL_Delay(3000); SDL_DestroyWindow(win); SDL_Quit(); return 0; } - 编译命令(PowerShell中执行):
gcc test.c -o test.exe -lSDL2main -lSDL2
内容的提问来源于stack exchange,提问作者Tworsfeline
相关产品推荐
相关产品推荐

