我按照步骤从他们的wiki构建和安装Allegro 5(在这里找到:https://wiki.allegro.cc/index.php?title=Main_Page),看似成功没有任何问题。
allegro安装到以下(如维基建议)/ usr / local / include和usr / local / lib,我已确认allegro在那里。
然后我在vim中编写了以下代码:
#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;
}
我是使用Unix的新手,并且只使用g ++编译c ++程序,这些程序是简单的hello world文件,不需要库。
因此,在互联网上搜索后,我尝试了以下命令:
g++ hello.cpp -o hello `pkg-config --libs allegro-5`
产生以下结果:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: __al_mangled_main)
ld: symbols not found for architecture x86_64
clang: error: linker command failed with exit code 1
BTW,我使用自制软件来安装依赖项而不是macports
brew install pkg-config brew install zlib 等...
这似乎是一个链接问题。
我做错了什么?
答案 0 :(得分:2)
尝试使用homebrew安装allegro并使用gcc -o main main.c -lallegro -lallegro_main
因为allegro_main是一个兼容库,允许main函数在所有编译器上工作。仅在OS X中需要。