2017-04-20 6 views
0

Mac OSX 10.12で単純なallegro5プログラムをコンパイルしようとしていますが、未定義のシンボルエラーが発生しています。ここで私は、端末osxでgccを使用してallegro5プログラムをコンパイルする際のエラー

gcc main.c -o hello -I/usr/local/include/ -L/usr/local/lib -lallegro_main

そして、ここに私のコードであるに走ったコマンドがあります。ここで

#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; 
} 

は私が

Undefined symbols for architecture x86_64: 
    "_al_clear_to_color", referenced from: 
     __al_mangled_main in main-b86b99.o 
    "_al_create_display", referenced from: 
     __al_mangled_main in main-b86b99.o 
    "_al_destroy_display", referenced from: 
     __al_mangled_main in main-b86b99.o 
    "_al_flip_display", referenced from: 
     __al_mangled_main in main-b86b99.o 
    "_al_install_system", referenced from: 
     __al_mangled_main in main-b86b99.o 
    "_al_map_rgb", referenced from: 
     __al_mangled_main in main-b86b99.o 
    "_al_rest", referenced from: 
     __al_mangled_main in main-b86b99.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

を得るエラーは、それは私が正しくアレグロをインストールしていない可能性はありますか?私はアレグロwikiの指示に従って自作を使ってインストールしました。 https://wiki.allegro.cc/index.php?title=Getting_Started#Mac_OS

答えて

0

これはリンカーエラーです。 lallegroにリンクする必要があります。

+0

これが '-lallegro_main'の目的です。私が知る限り、検索パスとライブラリパスは正しいです。 –

+0

'lallegro'は' lallegro_main'と同じではありません。 'lallegro'は主要な機能のほとんどを提供しています。' lallegro_main'はmain関数のためのものです(MacOSのためだけに必要です)。私は 'al_init'の定義されていない参照を見ていませんが、私はここで間違っているかもしれません... – rcorre

+0

' allegro_main'モジュールは(http://liballeg.org/a5docs/trunk/getting_started.html) 'allegro'モジュールです。ですから、 'lallegro_main'に加えて、' gcc'呼び出しに '-lallegro'フラグを追加しようとします。 – rcorre

関連する問題