如何使用 allegro 4.4.2 创建可移植的可执行文件

How to create a portable executable with allegro 4.4.2

所以我正在使用 allegro 版本 4.4.2 库创建一个 C++ 程序,我需要能够生成一个可执行包,我可以将其提交给课程讲师并在他的计算机上安装 运行 而无需问题。我正在使用 DevC++ 开发程序。如果到目前为止我理解正确,我需要 link 到 allegro 的静态库,然后可执行文件应该包含库信息,因此库本身没有必要包含在可执行包中。我也看到了一些关于生成可执行包的第三方工具的建议,但这些似乎更通用(不一定兼容 allegro?),我希望避免下载更多第三方软件。

我已经尝试 link访问静态库 liballegro-4.4.2-monolith-static-mt.a 但出于某种原因,当我这样做时,我得到了一大堆未定义的参考编译时间错误。我读到有必要在项目中包含#define ALLEGRO_STATICLINK,我在主源文件的顶部有这个声明,但我不确定我是否打算在项目选项中的某个地方定义它相反?

任何指导或 link 资源将帮助我解决我的问题将不胜感激!我刚刚开始使用 C++ 进行编程,开始学习面向对象的编程方法,我仍然偶尔会在基础知识上遇到困难,所以在此先感谢您的帮助!

背景故事(如果 interested/relevant?):我正在学习游戏 AI 编程课程,为此我们需要创建一些示例程序来演示 AI 算法。该课程指定 Java 但我最熟悉 C++,课程讲师说这很好,但我必须能够向他提交一个可执行文件,他可以在他的计算机上 运行 没有问题。为了最好地实现课程要求,我觉得 allegro 库(我已经安装了)会有很大帮助,主要用于在屏幕上绘制图形等。

所以我最终使用了我的程序的动态链接版本并包含了适当的 .dll 文件,结果证明比我想象的要少得多。

基本上我只需要确保 bin 文件夹中的 allegro-4.4.2-md.dll 包含在包含可执行文件的文件夹中。然后我将包(.exe 编译文件和所需的支持文件,如位图声音文件等)发送给几个朋友,让他们尝试 运行。然后他们从他们的计算机上向我发出警告,内容如下:“Test.exe cannot be 运行 ****.dll cannot be found”。

我在我的游戏文件夹中搜索了他们收到警告的 dll 文件的确切名称,瞧,它现在似乎可以在发送到的任何 PC 上执行。