编译安装 Grit
Grit
是一款 C 语言编写的 GBA/NDS 图片格式转换软件,由 Jasper Vijn (Cearn) 开发。 Grit 可以接受 JPG、PNG 等许多格式(只要受 FreeImage 支持),输出可以是 C/asm 数组也可以是原始二进制文件。总而言之就是非常强大,GBA/NDS homebrew 必备。
环境
软件 | 版本 |
---|---|
GCC | 9.4.0 |
FreeImage | 3.18.0 |
下载
作者的个人网站上提供了
编译
初次尝试
源码中可以看到有
1 | cldib/cldib_conv.cpp:182:10: error: cannot convert ‘bool’ to ‘CLDIB*’ in return |
怎么会有人在返回结构体指针的函数里返回return false
return NULL
。
安装依赖
再次libfreeimage
,安装即可。
1 | sudo apt install libfreeimage-dev |
但是,还是无法链接
1 | g++ -s -static -o grit build/grit_main.o build/cli.o build/fi.o -L. -lgrit -lcldib -lfreeimage |
修复 Makefile
这是为什么呢?这一切都怪-static
。
作者坚持仅在
于是在-static
但是
锦上添花(可选)
1 | /usr/bin/ld: ./libgrit.a(grit_xp.o): in function `grit_xp_c(GritRec*)': |
全局搜索看到,作者留下了这样一段话:
Also, I'm using tmpnam(), which apparently isn't recommended due to safety, but I don't know a suitable, portable alternative.
Google$PATH
All done.