NDK 命令行 Andriod 的so文件

发布时间:2025-02-13 05:10

使用Git Bash或命令行工具管理项目文件。 #生活技巧# #工作学习技巧# #编程学习路径#

最新推荐文章于 2023-09-19 14:52:10 发布

cejutue 于 2018-03-13 10:51:48 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

下载好NDK后,

命令行将toolchain 生成好:

我的配置:

set ARCH_TYPE=arm

set API_TYPE=21

Python27\python.exe %ANDROID_NDK_HOME%/build/tools/make_standalone_toolchain.py --force --arch=%ARCH_TYPE% --api=%API_TYPE% --stl=gnustl --install-dir=%ANDROID_STANDALONE_TOOLCHAIN%

然后是使用CMAKE 编译我们需要使用的C++程序并生成so。编译命令如下:

cmake -G "MinGW Makefiles" .  -DOUTDIR=%OUTDIR%  -DPLATFORM=%PLATFORM%  -DBUILD_TYPE=%BUILD_TYPE% -DCMAKE_BUILD_TYPE=%BUILD_TYPE% -DCMAKE_TOOLCHAIN_FILE=%ANDROID_CMAKE_HOME%/android.toolchain.cmake -DCMAKE_MAKE_PROGRAM=%ANDROID_STANDALONE_TOOLCHAIN%/bin/make 

cmake --build . --config %BUILD_TYPE% 

我遇到目前最大的坑:

class vector_iterator
{
const type*        _Sel;

}

这个竟然编不过,报错 expected unqualified-id before numeric constant, 各种找资料,查百度,有的说少分号,有的说没实现方法,但是这个工程是在Windows 和linux都编译过了,仅仅是在编译Andriod的相关版本才报错,最后无意间将名称改成小写,竟然编译通过了。

      可能和编译选项或者相关语法特性有关,暂时不知所以然,只查到了相关小写命名的Andriod建议。

进过查找与多次重试,发现跟模版有一定关系:模版内使用 "_" + 大写字母定义 成员指针会产生以上错误,貌似是调用到了模版的其他地方去了,必须饭stl源码才知道。

网址:NDK 命令行 Andriod 的so文件 https://www.yuejiaxmz.com/news/view/770916

相关内容

行业寒冬:关于网络优化你必须要知道的重点,手慢无
andriod自动化压力测试
Linux ===> 实用的8个LINUX命令行监测工具
CreateProcess error=2, 系统找不到指定的文件。
createInstance fail
CreateProcess error=2, 系统找不到指定的文件 解决方法
windows系统,删除文件慢,使用命令行快速删除大文件
CMD清理C盘垃圾指令大全(使用CMD命令行快速清理C盘中的垃圾文件)
Windows下快速删除上万个文件和子目录(快速删除文件) 命令行cmd快速删除文件夹
Linux 按时间批量删除文件命令(删除N天前文件)批量删除文件

随便看看