c++ - 无法识别 Allegro 原生对话

标签 c++ allegro

我设置了 allegro5,简单的程序(比如显示一个窗口,用黑色背景填充)工作正常。但是,当我尝试导入其他 header (如 native 对话框)时,我遇到了问题。比如编译这段代码的时候

#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 中似乎有合适的库。

编辑:我还尝试向 g++ 添加一个 -lallegro_native_dialog 标志,但没有成功。取而代之的是收到一条错误消息,提示 library not found for -lallegro_native_dialog,在其他地方看到了建议,我想我会试一试。

最佳答案

-lallegro_dialog 而不是 -lallegro_native_dialog!

关于c++ - 无法识别 Allegro 原生对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249456/

相关文章:

c++ - 矩阵类的重载运算符*

c++ - 等待 QTcpSocket 数据时阻止 GUI

c++ - 二叉搜索树插入如何使用递归工作?

c++ - 循环求和不显示实际结果?

c++ - 全屏运行 allegro 程序后出现屏幕分辨率问题

c++ - Allegro C++ 如何刷新删除行?

c - 在 OSX 上运行 Allegro 时出错

c++ - 为什么 std::tuple 和模板派生类的模板参数推导/替换失败?

c - 构建具有 Allegro 依赖项的 C 项目

c - 如何在 Allegro 上放置动态图像