Я выполнил шаги по созданию и установке Allegro 5 из их вики (найдено здесь: https://wiki.allegro.cc/index.php?title=Main_Page) и, казалось бы, без проблем.Компиляция Allegro 5 Программа через командную строку на Mac
allegro был установлен для следующих (как предполагает wiki)/usr/local/include и usr/local/lib, и я подтвердил, что allro существует.
Я тогда написал следующий код в 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 и только когда-либо компилируется C++ программы с г ++, которые были просто привет мира файлы без каких-либо библиотек, необходимых.
Поэтому после поиска по всему интернету я попробовал следующие команды:
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
BTV, я использовал доморощенного установить зависимости вместо MacPorts
brew install pkg-config brew install zlib и др.
Это похоже на проблему с привязкой.
Что я делаю неправильно?
Попробуйте использовать '$ (pkg-config -libs allegro-5)', а не '\' pkg-config -libs allegro-5 \ '' –
Я просто попробовал это, и результаты в той же ошибке. Я думаю, что это связано с вещами, которые не связаны должным образом, но я не знаю, как это исправить. – Smartypants
Вы пытаетесь скомпилировать статические библиотеки или динамические? и что является результатом команды: 'pkg-config --libs allegro-5' –