编译:找不到gles3库
使用旧的编译方式,写Android.mk 进行编译。报错如下
gles3/gl3.h no such file or directory
解决方案:
出此问题的原因是找不到这个库,所以需要声明这个庫所在的位置
需要在Application.mk里面声明
APP_STL := gnustl_static
APP_PLATFORM := android-21
android sdk 版本可以变 21-24都可以
Append:
时隔半年,搞了个新项目又遇到了这个问题。还是一样的报错
gles3/gl3.h file not found
问题是新项目没有用 Android.mk 做 ndk-build,而是用的 CMakeLists 的方式,原来的解决方案用不上了,但是根源问题还是在于适配的版本太低了。只要在 gradle 文件中将 minSdkVersion
调高即可,我调整到了 19。问题解决。
使用thread带来的报错
代码里用到了<thread>
库,编译时出现问题
如下
undefined reference to __atomic_fetch_add_4'
解决:
在gradle里面加上'atomic':
ldLibs.addAll(['log', 'jnigraphics', 'GLESv3', 'EGL', 'atomic'])
link报错
Linker failed while linking gl3jni.so
input/output error
这个问题困扰了很久,最后发现是开发环境的问题。
我在ubuntu虚拟机下开发,工程位于windows和虚拟机的共享文件夹中,导致出现inout/output error
在普通目录编译运行不报错。
2017-05-10 编辑