c++11 - 未找到 C++ Allegro 5 符号:__al_manangled_main 错误
问题描述
所以我有一个 C++ 游戏程序,它应该加载动态类/库加载,并且对图形库的所有引用只能在我正在创建的相应库中。现在我在 allegro 5 中创建了一个库,Makefile 看起来像这样
NAME = libSnakeAllegro.so
SRC = SnakeAllegro.cpp
SRC2 = SnakeAllegro.cpp main.cpp
CC = g++ -g -Wall -Wextra -Werror -std=c++11
FLAGS = -L allegro/lib -lallegro -lallegro_acodec -lallegro_audio \
-lallegro_color -lallegro_dialog -lallegro_font -lallegro_image \
-lallegro_main -lallegro_memfile -lallegro_physfs \
-lallegro_primitives -lallegro -lallegro_ttf -lallegro_video
all: $(NAME)
$(NAME): fclean
@ # $(CC) -o snake $(SRC2) -I ../ -I allegro/include $(FLAGS)
@ $(CC) -shared -fPIC -o $(NAME) $(SRC) -I ../ -I allegro/include $(FLAGS)
clean:
@rm -fr $(NAME)
@rm -fr $(NAME).dSYM
fclean : clean
re: fclean all
dl_open
我在另一个通用类中加载了库,但随后出现类似错误
dl_error : dlopen(lib/libSnakeAllegro.so, 5): Symbol not found: __al_mangled_main Referenced from: /home/rmdaba/Desktop/Nibbler/SnakeAllegro/allegro/lib/liballegro_main.5.2.dylib Expected in: flat namespace in /home/rmdaba/Desktop/Nibbler/SnakeAllegro/allegro/lib/liballegro_main.5.2.dylib
现在做了一些研究,发现我必须实施al_run_main(...)
,但问题是我不知道在哪里,因为我的SnakeAllegro
班级没有主课。
解决方案
推荐阅读
- bash - 通过 xargs 运行的命令失败但手动运行
- javascript - 我在哪里混淆了这个 Javascript 问题的数学逻辑?
- asp.net-mvc - 编辑级联下拉列表asp.net mvc 5
- c# - 新的 C# 8.0 开关表达式的运算符优先级是什么?
- python - Plotly:如何创建一个没有标题的表格?
- javascript - 节点服务器:由于不允许的 MIME 类型(“text/html”),加载模块被阻止
- angular - 无法读取未定义的“管道”
- javascript - 在网页中的 .pdf 或图像文件上绘制点
- python - 如何修复太多 If return 使代码过于复杂
- c# - 我如何将 someting.split() 的一部分存储到它自己的数组中?