2015-03-04 3 views
1

Я выполнил шаги по созданию и установке 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 и др.

Это похоже на проблему с привязкой.

Что я делаю неправильно?

+0

Попробуйте использовать '$ (pkg-config -libs allegro-5)', а не '\' pkg-config -libs allegro-5 \ '' –

+0

Я просто попробовал это, и результаты в той же ошибке. Я думаю, что это связано с вещами, которые не связаны должным образом, но я не знаю, как это исправить. – Smartypants

+0

Вы пытаетесь скомпилировать статические библиотеки или динамические? и что является результатом команды: 'pkg-config --libs allegro-5' –

ответ

1

попытаться установить аллегро с homebrew и использовать gcc -o main main.c -lallegro -lallegro_main

потому что allegro_main библиотека совместимости, которая позволяет основной функцией для работы на всех компиляторов. Требуется только из OS X.