2

今日はAllegroライブラリをインストールしてみました。私はC++で同じ経験をしていますが、そのようなことをしたことはないようです。Allegro 5.0をソースからコンパイルし、/ usr / lib / gcc / i486-linux-gnu / 4.4 / include/allegro5に配置しました。しかし、コードをコンパイルしようとすると、次のようになります。

    > g++ test2.cc -o test2
/home/chris/Desktop/c++/test2/.objs/main.o||In function `main':|
main.cpp:(.text+0x22)||undefined reference to `al_install_system'|
main.cpp:(.text+0x3e)||undefined reference to `al_create_display'|
main.cpp:(.text+0x6b)||undefined reference to `al_map_rgb'|
main.cpp:(.text+0x8e)||undefined reference to `al_clear_to_color'|
main.cpp:(.text+0x93)||undefined reference to `al_flip_display'|
main.cpp:(.text+0xa1)||undefined reference to `al_rest'|
main.cpp:(.text+0xa9)||undefined reference to `al_destroy_display'|
||=== Build finished: 7 errors, 0 warnings ===|

私が使用しているコード:

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

allegro-config --libs何も返しません。最初にAllegroをパッケージとして使用しましたが、どちらも機能しませんでした。

4

2 に答える 2

21

Allegro5はpkg-configを使用します。

gcc foo.c -o foo $(pkg-config --libs allegro-5.0)

また、使用するアドオンライブラリを指定する必要があります。

gcc foo.c -o foo $(pkg-config --libs allegro-5.0 allegro_image-5.0)
于 2011-03-08T22:16:11.803 に答える
1

Allegroライブラリとリンクする必要がありますが、リンクしていないようです。

allegro-config --libs何も返しません。

あなたの問題の一部があります。通常、次のようにコマンドラインに追加できるはずです。

g++ `allegro-config --libs` test2.cc -o test2

私のシステム(Ubuntu 10.10)では、次のようになります。

$ allegro-config --libs
-L/usr/lib -Wl,-Bsymbolic-functions -lalleg-4.2.2

あなたは権利を行使していallegro-configますか?多分あなたはそれにフルパスを指定する必要がありますか?

于 2011-03-07T16:29:26.747 に答える