kubuntu 14.04 编译 cocos2d-x 3.6

这是我第三次在linux发行版编译cocos2d-x。
首先是一些必要的依赖库,比如gl,glu,X* 之类的,这类基本上在缺失的时候都会有提示。
然后是一些官方已经编译好的依赖,可以使用download-deps.py脚本下载。
重点介绍3个库:glew3, glfw3, libcurl
这三个库我都是从源代码安装的,前两个是因为ubuntu的源里没有(fedora和archlinux的源里都有),最后一个是因为安装时候有4个可选,我有选择困难癌,所以选择了自己从源代码安装。

  1. glew3
    glew3从github获取代码后,先到auto目录下执行

    1
    $ make

    大致过程是从拉取registry,然后解析生成glew.c
    然后切换目录到glew3源码根目录,执行

    1
    2
    3
    $ make
    $ sudo make install
    $ make clean # 如果需要的话

    如果是64位系统,会把编译结果的.so和.a复制到/usr/lib64,并且把头文件复制到/usr/include/GL目录下。
    值得一提的是,就算这样如果ld.so.conf没有配置/usr/lib64路径,使用glew库的应用程序依然会报错,这时候你需要修改/etc/ld.so.conf文件,然后使用

    1
    $ sudo ldconfig

    更新so缓存。

  2. glfw3
    安装glfw3大致过程类似,首先是下载代码,然后用cmake生成makefile,然后执行

    1
    $ make && sudo make install

以上是直接安装到系统目录的做法,接下来是一种自定义目录的做法

  1. libcurl
    先是下载curl源代码,然后用cmake配置一下(推荐用gui),因为我们只需要静态库,还需要配置cmake的CMAKE_INSTALL_PREFIX(指定了我们待会生成的文件将被复制到哪里,我的目录是~/cocos2d-x/deps)。
    然后配置好的cmake,执行
    1
    $ make && make install
    然后需要修改 $COCOS2D/cmake/Modules/FindCURL.cmake
    在find_path()的参数中加入:PATHS 自定义依赖目录的路径 /include
    在find_library()的参数中加入:PATHS 自定义依赖目录的路径 /lib

如果你的系统里有应用程序依赖就的glew或glfw,那么1和2其实也可以按照3这种做法来,区别其实不大,无非就是花点工夫找到对应的Find*.cmake(可以利用cmake生成错误信息定位)