Android Ndk CMakeLists 开发常见的错误

错误 1

error This file requires compiler and library support for the ISO C++ 2011 standard 错误

解决方案:
在 CMakeLists 文件中添加 SET(CMAKE_CXX_FLAGS “-std=c++11 -O3”)

错误 2

‘asm/types.h’ file not found

解决方案:
在 CMakeLists 文件中添加 set(CMAKE_CXX_FLAGS “${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}”)

错误3

错误: java.lang.UnsatisfiedLinkError: Unable to load native library “xxx.so”: undefined symbol: ANativeActivity_onCreate
原因: This may mean that Java couldn’t find the ANativeActivity_onCreate function in your code, because it was stripped by the compliler.
解决: 选择加上 app_dummy() 即可;
相关链接: https://blog.beuc.net/posts/Make_sure_glue_isn__39__t_stripped/

错误4

错误: undefined reference to `EventLoop::EventLoop(android_app*)’
原因: 头文件没有被引用
解决: 查看 CMakeLists.txt 中是否已经添加 include_directories 指定头文件的路径
. target_link_libraries 中库库链接的顺序有关,可以调整它们的前后顺序, target_link_libraries 里面库文件的顺序要符合 gcc 链接顺序的规则,
即被依赖的库房子依赖它的库后面;
例如
target_link_libraries(hello A B.a C.so);
A 依赖 B, 而 B 依赖 C
相关链接:http://blog.csdn.net/zhujianwei31415/article/details/50727952

错误5

错误: error: unterminated conditional directive
解决: 在 .hpp 文件尾部添加 #endif

yxhuang wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客