之前在优化 Cocos2d-x 的粒子系统时,参考了云风的 ejoy2d,这两天心血来潮突然想完整看下源码,之前只是看了 sprite
,particle system
,renderer
这部分。
克隆了源码之后发现编译过不了,上次也遇到了。毕竟时隔快一年了,当时的情况也忘了,不知道是引擎的问题还是说开发环境变了,现在又要重新找一遍问题,也是蛋疼。所以这次就干脆记下来方便查阅。
程序员比起写代码,应该更害怕编译链接这种问题,因为这些问题很大程度不是由自身引起的或者说使用不当,所以把控感不强。
编译 glfw3
地址:https://github.com/glfw/glfw
编译手册:http://www.glfw.org/docs/latest/compile.html
我这里是 mac,所以直接
1 | cd <glfw-root-dir> |
这时候可以看到 glfw 被安装到 /usr/local
目录中:
1 | Install the project... |
编译 freetype2
freetype2 地址:https://www.freetype.org/index.html
编译:
1 | make |
同样可以看到 freetype2 被安装到 /usr/local
目录中。
如果编译 freetype2 出现如下问题:
1 | install: ./builds/unix/freetype-config: No such file or directory |
可以参考:https://lists.nongnu.org/archive/html/freetype/2014-01/msg00000.html
当然如果你安装过 X11,X11 里已经带了 freetype2,不过位置就不同了。
关于 X11 和 OSX:https://support.apple.com/en-us/HT201341
编译 ejoy2d
地址:https://github.com/ejoy/ejoy2d.git
我当前的节点是:5c7ae1db5dd28c6fdbcb1db2a2b6183e54a6c1e1
ejoy 已经自带 Makefile 了。稍微修改一下头文件和静态库的搜索目录,添加链接的 framework 即可:
1 | -macosx : CFLAGS += -I/usr/include $(shell freetype-config --cflags) -D __MACOSX |
然后执行:
1 | make |
可以看到生成了 ej2d
文件。
测试例在 examples/
目录下,执行
1 | ./ej2d examples/flappybird.lua |
即可浏览测试例。