C BGI库可能与64位版本的Windows不兼容 BGI库与windows不兼容
我需要通过BGI库进行图形编程。所以我遵循了网站上的步骤或者下面的步骤 系统:64位Windows 10; 编译器:GNU GCC编译器 应用程序:CodeBlocks::MinGW 第1步: 从或下载BGI库 第二步: 解压缩下载的文件。将有三个文件:C BGI库可能与64位版本的Windows不兼容 BGI库与windows不兼容,c,C,我需要通过BGI库进行图形编程。所以我遵循了网站上的步骤或者下面的步骤 系统:64位Windows 10; 编译器:GNU GCC编译器 应用程序:CodeBlocks::MinGW 第1步: 从或下载BGI库 第二步: 解压缩下载的文件。将有三个文件: 图形.h winbgim.h libbgi.a 第三步: 将graphics.h和winbgim.h文件复制并粘贴到编译器目录的include文件夹中。(如果计算机的C驱动器中安装了Code::Blocks,请执行以下操作: 磁盘C>>程序
- 图形.h
- winbgim.h
- libbgi.a
int left=0,int top=0,int right=int_MAX,int bottom=int_MAX,
第7步:
现在,你可以编译任何包含C。C++程序的包含图形的.h头文件。如果编译C代码,你仍然会得到一个错误:
致命错误:sstream:没有这样的文件目录
对于此问题,如果文件扩展名是.c,请将其更改为.cpp
杂注文件中的我的目录结构:
▾ CodeBlocks
▾ MinGW
bin
etc
▾ include
gdb
libiberty
▾ lib
▾ gcc
▾ x86_64-w64-mingw32
▾ 8.1.0
finclude
▸ include
include-fixed
▸ install-tools
lib
▾ libexec
▾ gcc
▾ x86_64-w64-mingw32
▾ 8.1.0
install-tools
▸ licences
▸ opt
▸ share
▾ x86_64-w64-mingw32
bin *(ld.exe is here)*
▾ include (graphics.h & winbgim.h) *(all header files are here)*
▾ lib (libbgi.a)
生成日志:
||=== Build file: "no target" in "no project" (compiler: unknown) ===|
C:\Users\UserName\OneDrive\Desktop\Untitled1.cpp||In function 'int main()':|
C:\Users\UserName\OneDrive\Desktop\Untitled1.cpp|6|warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]|
C:\Users\UserName\OneDrive\Desktop\Untitled1.o:Untitled1.cpp|| undefined reference to `initgraph'|
C:\Users\UserName\OneDrive\Desktop\Untitled1.o:Untitled1.cpp|| undefined reference to `bar'|
C:\Users\UserName\OneDrive\Desktop\Untitled1.o:Untitled1.cpp|| undefined reference to `closegraph'|
||error: ld returned 1 exit status|
||=== Build failed: 4 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
关于BGI头文件的注释:
▾ CodeBlocks
▾ MinGW
bin
etc
▾ include
gdb
libiberty
▾ lib
▾ gcc
▾ x86_64-w64-mingw32
▾ 8.1.0
finclude
▸ include
include-fixed
▸ install-tools
lib
▾ libexec
▾ gcc
▾ x86_64-w64-mingw32
▾ 8.1.0
install-tools
▸ licences
▸ opt
▸ share
▾ x86_64-w64-mingw32
bin *(ld.exe is here)*
▾ include (graphics.h & winbgim.h) *(all header files are here)*
▾ lib (libbgi.a)
我有一个64位的系统。
这可能会导致一些不兼容问题。是的,这就是尝试链接自2006年以来未重新编译过的库的问题。自那以后,很多事情都发生了变化。我不知道BGI是否是开源的(Borland与MS一样关闭)。然而,他们确实送出了一些非常过时的东西。可能会检查github是否有BGI回购。如果您可以从源代码重建所有内容,这将消除所有不兼容。但老实说,您为什么还要这样做?BGI类型的图形已经死了二十年。字体不再提供线条绘制字符等。最好再找一种呃解决方案
<> David C. Rankin @ < /P>但是,如果要通过C使用图形,必须将扩展改为C++。我自己对它了解不多,只是遵循程序。C++编译,例如“代码>”,ISO C++禁止……/代码。如果需要编译成C,那么你需要告诉我们你使用的是什么编译器。如果使用VS(<代码> C.exe < /COD>)然后,你需要通过<代码> /Tc< /Cord>选项。好,你调用“代码> LD。exe < /Cube >链接,所以你必须使用MIW作为编译器。如果你需要编译为C,使用<代码> GCC < /C> >,使用C++ > G+++ >代码>。你可以在你的构建设置中调整这个项目。你的所有<代码>“ld.exe | |找不到…:错误告诉您有路径问题。特别是
ld|u库路径
。编译器找不到您需要的任何库(包括lstdc++
)。在修复之前,您不会生成任何内容。您是安装了与捆绑版本的Code::Block捆绑在一起的MinGW,还是单独安装了MinGW?我安装了捆绑版本。与MinGW捆绑在一起的CodeBlocks。我使用的是GNU GCC编译器和64位系统。