graphics.h在dev c ++中不起作用

时间:2014-12-07 09:36:02

标签: c++

我正在尝试在开发C ++ 5.7.1中使用graphics.h。

我已经在互联网上搜索了可用的选项。 我在include文件夹中下载了graphics.h库,并在参数选项中选择了以下内容:

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

我仍然无法弄清楚为什么它会向我显示这些错误:

undefined reference to `initgraph'
undefined reference to `graphresult'
undefined reference to `grapherrormsg'
undefined reference to `getmaxx'
undefined reference to `getmaxy'
undefined reference to `getmaxcolor'
undefined reference to `getcolor'
undefined reference to `circle'
undefined reference to `closegraph'
[Error] ld returned 1 exit status.

这是我的代码:

#include<iostream>
#include<graphics.h>
#include<stdlib.h>
#include<stdio.h>
//#include<conio>
int main(void)
{
       /* request auto detection */
       int gdriver = DETECT, gmode, errorcode;
       int midx, midy;
       int radius = 100;
       /* initialize graphics and local variables */
       initgraph(&gdriver, &gmode, "C:\\Program Files (x86)\\Dev-Cpp\\MinGW64\\include\\winbgim");
       /* read result of initialization */
       errorcode = graphresult();
       if (errorcode != grOk)  /* an error occurred */
       {
           printf("Graphics error: %s\n", grapherrormsg(errorcode));
        printf("Press any key to halt:");
      getch();
      exit(1); /* terminate with an error code */
   }
   midx = getmaxx() / 2;
   midy = getmaxy() / 2;
   setcolor(getmaxcolor());
   /* draw the circle */
   circle(midx, midy, radius);
   /* clean up */
   getch();
   closegraph();
   return 0;
}

3 个答案:

答案 0 :(得分:2)

将以下文件下载到上述目录:

我假设您已将Dev-Cpp安装到 C:\Dev-Cpp

http://www.cs.colorado.edu/~main/bgi/dev-c++/graphics.h目录:&gt; C:\开发-CPP \包括 http://www.cs.colorado.edu/~main/bgi/dev-c++/libbgi.a目录:&gt; C:\开发-CPP \ lib中

创建一个新的C ++项目并设置&#34;项目选项 - &gt;参数 - &gt;链接器&#34;如

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

并尝试执行此示例代码;然后去找你上面发布的代码。

#include<graphics.h>

int main( ){
        initwindow( 700 , 700 , "MY First Program");
        circle(200, 200, 150);
        getch();
        return 0;
}

答案 1 :(得分:0)

错误消息表明未定义该功能。函数通常在源代码或库中定义(静态或动态)。因此,您需要在项目中包含源代码,以便它与上面的代码一起链接,或者您需要链接到预编译的库(可能是.a,.lib或.dll文件。)

我对你正在使用的图书馆并不太熟悉;但是,我认为graphics.h包含函数声明,不包括函数定义。

答案 2 :(得分:0)

这是链接器错误。确保您在项目选项 - &gt;参数 - &gt;链接器中编写的库名称以&#34; - &#34;

开头。

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

正如Zeke在上面写的那样。