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



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

我已经尝试链接到静态库libballegro4.4.2 -monolith-static-mt。但是由于某种原因,当我这样做的时候,我得到了一大堆未定义的引用编译时错误。我读到有必要在项目中包含#define ALLEGRO_STATICLINK,我在我的主要源文件的顶部有这个语句,但我不确定我是否打算在项目选项的某个地方定义这个?

任何指导或链接到资源,这将有助于我解决我的问题将非常感激!我刚刚进入用c++编程的肉开始学习面向对象的编程方法,我仍然偶尔挣扎与基础,所以提前感谢您的帮助!

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

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

基本上我只需要确保bin文件夹中的allegro-4.4.2-md.dll包含在可执行文件的文件夹中。然后我把包(.exe编译文件和所需的支持文件,如位图声音文件等)发送给几个朋友,让他们试着运行它。然后,他们从他们的计算机上给了我类似"Test.exe无法运行****.dll无法找到"之类的警告。

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

相关内容

  • 没有找到相关文章

最新更新