2011-12-08 5 views
3

私は最近、ソースから(wikiの指示に従って)Allegro-5.0をコンパイルしました。私はプロセス中に何の誤りもなかったので、それはうまくいったと思います。しかし、私もほとんどの最小限のテスト・プログラムとリンカエラーを取得しています:Allegro 5.0 - リンカエラーが発生するのはなぜですか?

//test.cpp 
#include <allegro5/allegro.h> 

int main() 
{ 
    al_init(); 
    return 0; 
} 

私は

g++ `pkg-config --libs allegro-5.0` test.cpp -o test 

でコンパイルしています。しかし、私はいつも

/tmp/ccVmmERa.o: In function `main': 
test.cpp:(.text+0xf): undefined reference to `al_install_system' 
collect2: error: ld returned 1 exit status 

(PKG-config設定のリターンを得ます - L/usr/local/lib -lallegro、それに何か問題はないようです)

また、与えられたmakefileを使った例はうまくいきますので、ライブラリに何か問題はないようです。 makefileが動作するようにするのと同じことをやろうとしますが、私はそれを全く理解できません(私は簡単に自分のものを書くことはほとんどできません)。

ああ、私はUbuntu 11.10とgcc 4.7を使用していますが、それはそれとは関係ありません。

だから、どうしてこのようなことが起こり、どうすれば修正できますか?

答えて

5

、コマンドラインの最後のLIBSを置く:

g++ test.cpp -o test `pkg-config --libs allegro-5.0` 

リンクする際に、ファイルとライブラリの順序は重要。

+0

ありがとうございました。私は今、全部の馬鹿のように感じますが、少なくともそれは機能します。 – Cubic

+0

ME TOO !!!!!!!!! – HoNgOuRu

+0

Thx、コンパイル済み。他の誰かが同じ問題を抱えている場合は、LD_LIBRARY_PATH =/path/to/allegro/lib ./progを追加する必要があります。そうしないと、共有ライブラリを読み込む際にエラーが発生します。liballegro.so.5.0:共有を開くことができません。オブジェクトファイル:そのようなファイルやディレクトリはありません " – justin

関連する問題