Ide 为什么不是';t代码块让我编译这个示例Allegro程序?
基本上,我在让Allegro绑定(D+Allegro)处理代码块时遇到了一个问题。 我认为这是一个设置问题,但我不确定在哪里。 这就是我到目前为止所做的Ide 为什么不是';t代码块让我编译这个示例Allegro程序?,ide,d,codeblocks,allegro,allegro5,Ide,D,Codeblocks,Allegro,Allegro5,基本上,我在让Allegro绑定(D+Allegro)处理代码块时遇到了一个问题。 我认为这是一个设置问题,但我不确定在哪里。 这就是我到目前为止所做的 Error: module base is in file 'allegro5\base.d' which cannot be read| 这是我一直犯的错误。我使用的是Windows7、DAllegro5、Code:Blocks和D语言DMD编译器 代码:积木工程。编写一个定期的D项目工作。我已将DAllegro5文件添加到项目中,但我一直
Error: module base is in file 'allegro5\base.d' which cannot be read|
这是我一直犯的错误。我使用的是Windows7、DAllegro5、Code:Blocks和D语言DMD编译器
代码:积木工程。编写一个定期的D项目工作。我已将DAllegro5文件添加到项目中,但我一直收到此错误。我还应该做些什么来消除这个错误
你有两个选择您可以将所有模块复制到项目中,然后就这样使用它们。或者,为了方便起见,您可以将绑定编译到静态库中:
我做了大胆的尝试。只是将实际的.d文件复制到我的项目中。事实上,“您可以将所有模块复制到您的项目中”路径并不比另一个路径简单,即单独构建库
不管怎样,这是一个对我有用的步骤。请注意,这适用于Windows+Code::Blocks+Allegro5+DMD链,假设在Code::Blocks中编译D项目已经可以工作。具体来说,这不适用于其他D编译器,GDC和LDC
第一部分
Project
-在code::Blocks中递归添加文件…
以递归方式添加所有.d文件(例如.d和allegro5/*,目前总共是49个文件)||===编译:在[您的项目名称]中调试(编译器:Digital Mars D编译器)===|
||符号未定义_al_run_main|
||符号未定义\u al\u安装\u鼠标|
||符号未定义\u al\u绘制\u三角形|
...
||===构建失败:26个错误,0个警告(0分钟,6秒))===|
也就是说,链接器找不到任何库函数。这里有一个问题:您现在应该获得COFF.lib格式的Allegro5二进制文件。就我所知,它并不是我们可以信赖的地方:Allegro开发人员提供的.lib二进制文件是OMF格式的。要获得它,您需要一个Allegro DLL,可能来自Allegro的主站点,以及一个执行DLL到COFF转换的程序,可能来自D编译器的站点。下面详细介绍了该过程
第二部分
implib/s dallegro5.lib allegro-5.0.10-monolith-mt.dll)将从现有dll文件生成COFF格式的.lib文件。在这里,需要“/s”选项在函数名前加下划线,例如,在.lib文件中,“al_run_main”被称为“_al_run_main”。Allegro5 DLL文件的命名(什么是monolith、md或mt等)在这里解释:
项目
-构建选项…
-链接器设置
并将新创建的“dallegro5.lib”添加到库列表中Project
-在code::Blocks中递归添加文件…
以递归方式添加所有.d文件(例如.d和allegro5/*,目前总共是49个文件)||===编译:在[您的项目名称]中调试(编译器:Digital Mars D编译器)===|
||符号未定义_al_run_main|
||符号未定义\u al\u安装\u鼠标|
||符号未定义\u al\u绘制\u三角形|
...
||===构建失败:26个错误,0个警告(0分钟,6秒))===|
也就是说,链接器找不到任何库函数。这里有一个问题:您现在应该获得COFF.lib格式的Allegro5二进制文件。就我所知,它并不是我们可以信赖的地方:Allegro开发人员提供的.lib二进制文件是OMF格式的。要获得它,您需要一个Allegro DLL,可能来自Allegro的主站点,以及一个执行DLL到COFF转换的程序,可能来自D编译器的站点。下面详细介绍了该过程
第二部分