【发布时间】:2019-03-15 23:32:13
【问题描述】:
我是 allegro 的初学者,我刚刚正确安装了 allegro,这是我的代码(我的第一个代码):
#include<allegro5/allegro.h>
#include<allegro5\allegro_font.h>
#include<allegro5/allegro_native_dialog.h>
#include<allegro5\allegro_ttf.h>
#include<iostream>
int main()
{
ALLEGRO_DISPLAY *display;
if (!al_init())
{
al_show_native_message_box(display,
NULL,
NULL,
"Could not initialize allegro 5",
NULL,
NULL);
}
display = al_create_display(800, 600);
if (!display)
{
al_show_native_message_box(display,
NULL,
NULL,
"Could not initialize allegro WINDOW ",
NULL,
NULL);
}
al_rest(5.0);
al_destroy_display(display);
return 0;
}
现在这是构建日志显示的内容:
1>----- 构建开始:项目:Allegro_intro,配置:Debug Win32 ------ 1> 主.cpp 1>c:\users\krish\desktop\projects\allegro_intro\allegro_intro\main.cpp(11):警告 C4700:使用了未初始化的局部变量“显示” 1>main.obj:错误 LNK2005:_main 已在 font.obj 中定义 1>C:\Users\krish\Desktop\Projects\Allegro_intro\Debug\Allegro_intro.exe:致命错误 LNK1169:找到一个或多个多重定义符号 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========然后有一个对话框显示“无法启动程序...系统找不到指定的文件”。 请告诉我该怎么做
【问题讨论】:
-
无法解决第二个错误,部分原因是我根本不知道 allegro,但第一个错误是因为
ALLEGRO_DISPLAY *display;在使用它之前没有将display指向任何东西.应该有一些你可以调用的初始化函数来获得一个有效的ALLEGRO_DISPLAY对象,你可以在al_show_native_message_box中使用。我建议您查阅您一直关注的文档或教程。看起来您可能错过了一行。 -
您的 Main 方法被声明了两次。搜索另一个 Main 方法,并删除其中一个
-
allegro.cc/manual/5/al_create_display 看起来很适合您缺少的东西。
-
看起来你在
font.cpp中有另一个main函数你不能有两个。 -
那是One Definition Rule,或者在更戏剧性的演示中,youtube.com/watch?v=sqcLjcSloXs。