0

我有一个使用 SDL-bgi 在 Linux 上运行的程序。我已经从http://libxbgi.sourceforge.net/下载了 SDL-bgi 二进制文件,并且可以编译它,但我无法链接(给我"undefined reference to ...错误)。下载提供了一个DLL,但是根据这个问题的答案,我需要一个.lib. .lib我在下载的任何地方都找不到。

这是tree /f提取的文件夹中的输出:

│   AUTHORS
│   BUGS
│   build.sh
│   ChangeLog
│   CMakeLists.txt
│   INSTALL.md
│   LICENSE
│   README.md
│   sdl_bgi.spec
│   TODO
│   VERSION
│
├───bin
│   ├───CodeBlocks
│   │       SDL_bgi.dll
│   │
│   ├───Dev-Cpp
│   │       SDL_bgi.dll
│   │
│   └───Mingw64
│           SDL_bgi.dll
│
├───doc
│       functions.md
│       functions.pdf
│       howto_CodeBlocks.md
│       howto_CodeBlocks.pdf
│       howto_Dev-Cpp.md
│       howto_Dev-Cpp.pdf
│       sdl_bgi-quickref.pdf
│       sdl_bgi-quickref.tex
│       SDL_bgi_logo.png
│       SDL_bgi_logo.svg
│       turtlegraphics.pdf
│       turtlegraphics.tex
│       using.md
│       using.pdf
│
├───src
│       graphics.h
│       Makefile
│       Makefile.CodeBlocks
│       Makefile.DevCpp
│       SDL_bgi.c
│       SDL_bgi.h
│
└───test
[... a bunch of c files]

我试图从它所在的位置链接到库,而不是C:\CodeBlocks\MinGW\bin按照文档的建议,因为我没有正确的权限。

4

1 回答 1

1

第一种方法,如果您没有在 Codeblocks 中安装旧的 bo​​rdland 图形界面,请使用此方法,否则您会收到类似多重声明的错误,因为两个库都使用相同的函数声明

步骤:1-创建一个新的 c 控制台项目,将其命名为您想要的任何名称,然后从下面的 zip 中粘贴包含文件夹中的文件并将其粘贴到 C:\Program Files (x86)\CodeBlocks\MinGW\include 然后粘贴 libsdlbgi.a从 zip 文件到此路径 C:\Program Files (x86)\CodeBlocks\MinGW\lib

SDLBGI.zip

步骤:2-转到代码块然后转到设置然后选择编译器转到链接器选项并单击添加然后浏览到以前粘贴的 libsdlbgi.a 文件然后添加它然后转到搜索目录链接器并再次对 libsdlbgi.a 执行相同操作。

步骤:3-编写任何简单的程序并构建并编译并运行它。

第二种方法,如果你想要 bgi 和 sdl bgi

仔细遵循所有步骤以使其正常工作

步骤:1- 只需在 Code-Block 中使用 SDL2 从类别中创建一个新项目,然后单击输入并为项目命名,然后单击下一步并完成以创建新项目。

步骤:2- 转到您创建项目的目录,然后 从“SDL_bgi-2.2.4” 复制这些文件“SDL_bgi.c”“SDL_bgi.h”“sdlbgidemo.c”“ logo.bmp” [src 文件夹][test 文件夹]到项目文件夹。

步骤:3-首先从代码块项目中删除默认的 main.cpp 文件,然后将“sdlbgidemo.c”添加到项目中,然后在 CodeBlocks 的下一个窗口中单击“确定”,该窗口要求选择目标文件以“调试”“发布”

步骤:4-在代码块中选择 sdlbgidemo.c 然后在代码编辑器中打开它,然后将#include <'graphics.h'>标头更改为#include "SDL_bgi.c"

步骤:5-最后一步按下构建并运行按钮,它将构建并运行项目,您可能会在屏幕上看到之前粘贴的 logo.bmp,然后您可以看到所有 SDL_bgi 库功能的演示。

这是代码块项目文件[zip],为您提供了所有必要的修改,因此您可以使用代码块轻松运行它。

[代码块项目文件.zip]

如果您不想在每次创建新项目时重复第 2步和第 3步,请按照第 5 步来解决此问题。

步骤:6-首先转到您安装代码块的目录,然后浏览[Mingw]然后浏览此文件夹中的[include]文件夹,您可以简单地复制'SDL_bgi.c''SDL_bgi.h'或者如果你已经安装旧Borland 图形库 [BGI]然后您必须为 SDL-BGI 创建单独的文件夹,并且必须将我之前告诉您的所有文件粘贴到这个新创建的文件夹中,然后如果您希望在项目中使用或包含这些文件,只需键入这些行#include "SDL_bgi.c"#include "[Previous created folder]/SDL_bgi.c " 来运行你的程序。

这是 zip 文件的链接,其中包含我们迄今为止所采取的所有步骤的一些屏幕截图......

[屏幕截图.zip]

我希望这能解决您的问题并节省您的时间。

最后

这就是所有人

于 2019-12-22T18:12:33.343 回答