Atu*_*ngh 24 libraries compiler
是否有任何支持graphics.h库的基于 Linux 的编译器?我想实现图形程序,所以请让我知道是否有这样的软件。
如果没有,那么我该如何使用它?
g_p*_*g_p 34
有几个选项可用于使用 Ubuntu 进行图形编程。
如果你想graphics.h在 Ubuntu 平台上使用你需要编译和安装libgraph. 它是使用 SDL 在 Linux 上实现 turbo c 图形 API。
它不是很强大,适合生产质量应用程序,但它简单易用,用于学习目的。
你可以从这里下载。
首先添加Universe存储库(因为主存储库中没有一些必需的包):
sudo add-apt-repository universe
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)第二个安装 build-essential 和一些额外的包:
对于 18.04 之前的版本:
sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-1.8 \
guile-1.8-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
libesd0-dev libdirectfb-dev libdirectfb-extra libfreetype6-dev \
libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
libslang2-dev libasound2 libasound2-dev build-essential
Run Code Online (Sandbox Code Playgroud)对于 18.04:从 Ubuntu 18.04 开始guile-2.0工作并libesd0-dev已弃用。为此,您需要添加xenialin 的存储库sources.list。
sudo nano /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
添加这些行:
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
Run Code Online (Sandbox Code Playgroud)
运行sudo apt-get update。然后使用以下命令安装软件包:
sudo apt-get install libsdl-image1.2 libsdl-image1.2-dev guile-2.0 \
guile-2.0-dev libsdl1.2debian libart-2.0-dev libaudiofile-dev \
libesd0-dev libdirectfb-dev libdirectfb-extra libfreetype6-dev \
libxext-dev x11proto-xext-dev libfreetype6 libaa1 libaa1-dev \
libslang2-dev libasound2 libasound2-dev
Run Code Online (Sandbox Code Playgroud)现在解压缩下载的libgraph-1.0.2.tar.gz文件。
转到解压缩的文件夹并运行以下命令:
./configure
make
sudo make install
sudo cp /usr/local/lib/libgraph.* /usr/lib
Run Code Online (Sandbox Code Playgroud)现在你可以#include<graphics.h>在 Ubuntu 上使用你的程序中的以下行:
int gd=DETECT,gm;
initgraph(&gd,&gm,NULL);
Run Code Online (Sandbox Code Playgroud)这是一个示例程序,使用graphics.h:
/* demo.c */
#include <graphics.h>
int main()
{
int gd = DETECT,gm,left=100,top=100,right=200,bottom=200,x= 300,y=150,radius=50;
initgraph(&gd,&gm,NULL);
rectangle(left, top, right, bottom);
circle(x, y, radius);
bar(left + 300, top, right + 300, bottom);
line(left - 10, top + 150, left + 410, top + 150);
ellipse(x, y + 200, 0, 360, 100, 50);
outtextxy(left + 100, top + 325, "C Graphics Program");
delay(5000);
closegraph();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译它使用
gcc demo.c -o demo -lgraph
Run Code Online (Sandbox Code Playgroud)运行类型
./demo
Run Code Online (Sandbox Code Playgroud)虽然 OpenGL 基本上是为 3D 编程而设计的,但绘制 2D 形状给出了 OpenGL 的基本轮廓和介绍,并给出了如何在 OpenGL 中开始绘制对象的想法。
sudo apt-get install freeglut3-dev./* demo.c */
#include <GL/gl.h>
#include <GL/glut.h>
#include <GL/glu.h>
void setup() { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); }
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 0.0f);
glRectf(-0.75f,0.75f, 0.75f, -0.75f);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
glutInitWindowSize(800,600);
glutCreateWindow("Hello World");
setup();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译使用
gcc demo.c -o demo -lglut -lGL
运行它使用
./演示