Ubuntu 17.10编译Cocos2d-x失败:缺失.a文件如何获取?
嘿,我之前在Ubuntu上折腾Cocos2d-x的时候也碰到过类似的静态库缺失问题,给你几个实用的排查和解决方向:
优先检查Cocos2d-x自身的编译产物
你大概率是没完整编译Cocos2d-x的核心静态库。先回到Cocos2d-x的根目录,先执行./setup.py完成环境配置,然后进入build目录依次运行:cmake .. make -j$(nproc)编译完成后,所有需要的
.a文件会生成在cocos2d-x/build/lib或者对应模块的子目录下。你可以把这些文件复制到/usr/local/lib,更推荐的是在你的项目编译配置里直接指定这个库路径,避免污染系统目录。确认系统依赖库是否安装完整
Cocos2d-x依赖不少系统级开发库,比如OpenGL、FreeType、SDL等。你可以根据make报错里具体缺失的库名,安装对应的开发包(带-dev后缀的),比如常见的几个:sudo apt-get install libgl1-mesa-dev libfreetype6-dev libsdl2-dev libpng-dev libjpeg-dev这些包安装后,对应的
.a文件会自动出现在/usr/local/lib或/usr/lib目录下。检查项目编译配置的路径设置
有时候不是真的缺库,而是你的项目没找到库的位置。如果Cocos2d-x的库是本地编译的,你需要在项目的CMakeLists.txt或者Makefile里添加:link_directories(/path/to/cocos2d-x/build/lib)或者在编译命令里加上
-L/path/to/cocos2d-x/build/lib,告诉编译器去哪里找这些静态库。尝试重新编译整个项目
如果是用cocos new创建的项目,可以删除项目下的build目录,然后用官方命令重新编译:cocos compile -p linux这个命令会自动处理依赖检查、库编译和项目构建,很多时候能自动解决这类缺失问题。
内容的提问来源于stack exchange,提问作者Andy D

