在Visual 2017中,我在Allero5库的设置上遇到了一些问题。在大多数情况下,我会得到链接器错误(未知/未识别的外部类型)。我说,在大多数情况下,因为这个代码:
#include <stdio.h>
#include <allegro5/allegro.h>
int main(int argc, char **argv) {
ALLEGRO_DISPLAY *display = NULL;
if (!al_init()) {
fprintf(stderr, "failed to initialize allegro!\n");
return -1;
}
display = al_create_display(640, 480);
if (!display) {
fprintf(stderr, "failed to create display!\n");
return -1;
}
al_clear_to_color(al_map_rgb(0, 0, 0));
al_flip_display();
al_rest(10.0);
al_destroy_display(display);
return 0;
}像往常一样编译,没有错误,并按预期运行。但是这个代码:
#include "allegro5/allegro.h"
#include "allegro5/allegro_image.h"
#include "allegro5/allegro_primitives.h"
int main(int argc, char **argv){
ALLEGRO_DISPLAY *display = NULL;
ALLEGRO_DISPLAY_MODE disp_data;
al_init(); // I'm not checking the return value for simplicity.
al_init_image_addon();
al_init_primitives_addon();
al_get_display_mode(al_get_num_display_modes() - 1, &disp_data);
al_set_new_display_flags(ALLEGRO_FULLSCREEN);
display = al_create_display(disp_data.width, disp_data.height);
al_rest(3);
al_destroy_display(display);
return 0;
}资料来源:相同,下一篇教程。
给我三个链接器错误。许多其他代码在链接器中也有不同数量的错误。在这种情况下,错误的原因是:
错误码描述
函数LNK2019中未识别的外部符号__imp__al_init_image_addon
函数LNK2019中未识别的外部符号__imp__al_init_primitives_addon
无法识别的外部类型的LNK1120数:2
我读过快板在自由类型中有一些依赖项,所以我使用NuGet(项目包管理器)来安装它,就像快板一样。我是Visual的新手,所以如果你有一个可能的解决方案,请一步一步地解释(如果你有能力,请解释,这样我就能学到一些新的东西)
如果你需要什么东西来找到解决办法,只需问和解释我如何能得到它。
提前谢谢。
发布于 2018-02-21 08:40:58
是的,我只是很蠢。
我为我所造成的麻烦感到抱歉。
这是因为我不知道,我必须启用项目属性中的模块,在“快板5”选项卡下。现在我已经开始运作了。
很抱歉打扰你了。
发布于 2019-03-22 15:48:28
很高兴你解决了。为了记录在案,默认情况下,VS的Nuget包中没有链接addon库。安装解决方案的Allero5Nuget包后,右键单击项目属性,然后从左侧的菜单中选择Allegro5。转到addon库,并启用您正在使用的加载项。很简单。
https://stackoverflow.com/questions/48893211
复制相似问题