【问题标题】:Compiling C++ code with allegro 5 and g++使用 allegro 5 和 g++ 编译 C++ 代码
【发布时间】:2011-09-16 15:49:08
【问题描述】:

为了使用 allegro 5 编译代码,我需要向 g++ 添加哪些标志?我试过了

g++ allegro5test.cpp -o allegro5test `allegro-config --libs`

但这不起作用。我正在使用 ubuntu 11.04。我使用http://wiki.allegro.cc/index.php?title=Install_Allegro5_From_SVN/Linux/Debian 处的说明安装了 allegro 5

我试过了:

g++ allegro5test.cpp -o allegro5test `allegro-config --cflags --libs`

而且它还给出了一堆未定义的错误,例如:未定义的对 `al_install_system' 的引用

allegro-config --cflags --libs 输出:

-I/usr/local/include
-L/usr/local/lib -lalleg

【问题讨论】:

  • allegro5test.cpp#include <allegro5/allegro.h> 行吗?
  • 这不是重复的,因为那个答案没有解决问题。该 OP 放弃并改用了该库的早期版本,并将答案标记为已接受,因为他是一个好人。这个帖子有真正的答案。
  • 该问题中的 OP 标记了错误的答案。我给出的答案是正确的。 Allegro 5 使用 pkg-config。

标签: c++ g++ allegro allegro5


【解决方案1】:

所以你成功地从 SVN 在你的系统上安装了 allegro5。您应该知道的一件事是,此版本不附带 allegro-config。如果您的系统上有它,则表示您以前安装过 allegro4

allegro5 带来了很多变化,包括不同的初始化程序、库和函数名称。

这是一个新版本的 hello world 应用程序:

#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 不同:

g++ hello.cpp -o hello -I/usr/include/allegro5 -L/usr/lib -lallegro

【讨论】:

  • 代码格式使用了`字符,所以问题中没有出现,我重新格式化修复它。
  • @Jcubed 我倾向于同意您也需要指定 --cflags
  • 它给出了一堆未定义的错误,例如:未定义的对 `al_install_system' 的引用
  • @Jcubed 请使用此信息编辑您的原始问题,而不是将其作为评论留下。
  • 好吧,我正在使用 allegro 5,所以该命令对我不起作用。我能够很好地编译 allegro 4.2 代码,但这不是我需要帮助的。
【解决方案2】:

Allegro 5 使用 pkg-config。

pkg-config --libs allegro-5.0 allegro_image-5.0

你正在使用的每个库等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-05
    • 2017-08-13
    • 1970-01-01
    • 2020-03-07
    • 2022-01-09
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多