2013-01-10 24 views
0

我得到了allegro5的設置,而簡單的程序(如顯示一個窗口,填充黑色背景)工作正常。當我嘗試導入其他標題(如本機對話框)時,我遇到了問題。例如,編譯這段代碼Allegro本機對話框不被識別

#include <allegro5/allegro.h> 
#include <allegro5/allegro_native_dialog.h> 

int main(){ 

    if(al_init()) { 
     al_show_native_message_box(al_get_current_display(), 
           "Window Title", 
           "Content Title", 
           "The error message here", 
           NULL, ALLEGRO_MESSAGEBOX_ERROR); 
     return 0; 
    } 

    return 0; 
} 

像這樣

g++ -L/usr/local/lib -L/usr/lib -o "Allegro" ./main.o -lallegro_main -lallegro

,當我得到這個錯誤

Undefined symbols for architecture x86_64: 
    "_al_show_native_message_box", referenced from: 
     _al_mangled_main()  in main.o 

任何想法誰解決這一問題?我肯定所有的頭文件都存在,並且似乎在/ usr/local/libs中有適當的庫。

編輯:我也嘗試添加一個-lallegro_native_dialog標誌g ++沒有用。相反,得到一個錯誤說library not found for -lallegro_native_dialog,看到其他地方的建議,並認爲我會給它一個鏡頭。

+0

Allegro 5有許多可選組件。您是否構建了這些可選組件? –

+0

@NicolBolas頭文件位於/ usr/local/include/allegro5,這是否意味着它的內置?當我做一個cmake/make/make install時,我從來沒有做過任何特別的事情,所以可能是這樣。 – Puzzler3141

回答

2

這是-lallegro_dialog不是-lallegro_native_dialog

+0

如果這是Linux,你應該使用'pkg-config' – Matthew

+0

@Mthethew我在Mac上,可悲的是pkg-config從來沒有工作:( – Puzzler3141