`

eclipse里配置Android ndk环境,用eclipse编译.so文件

 
阅读更多

做Android NDK开发时,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译。

编译c代码有两种方法:

一、写好c代码后,然后用cygwin搭建ndk-build环境,用ndk-build来编译出相关的.so文件(libs目录)之后,

再用eclipse里去编译java程序,从而使用.so文件。该方法在上一篇搭建NDK环境有介绍。

二、利用eclipse完全可以达到编译.so的目的。

首先,先装上CDT吧,这是Eclipse的C/C++环境插件,装上它后你就可以在Eclipse里创建C/C++项目和代码文件了。插件的安装有两种方式,一种是在线安装,一种是下载安装包自己安装,这里只介绍第一种方式,另一种方式可自行百度。首先登录http://www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址,如下图所示:,找到对应你Eclipse版本的CDT插件的在线安装地址,如下图所示:

 

2、找到对应你eclipse版本的CDT插件地址,之后打开Eclipse,点Help菜单,找到Install New Software菜单,注意一些老版本的Eclipse菜单不太一样,比如说Europa的版本,就是Help--Software Updates—Find and Install--Search for new features to install--New Remote Site,除了菜单不太一样外,安装方式都差不多,可自行百度一下,下图以Indigo版本为准:

3、把取的地址填进去,出来插件列表后,选Select All,如下图所示:

然后狂点下一步即可完成安装。

 

也可以点击Add按钮用离线方法安装。出现该对话框,点击Archive按钮,选择之前下载的离线安装包,安装过程同在线安装。

 

4、安装完成后,点菜单File-New-Project,出现新建项目界面,如果出现了C/C++项目,那么恭喜你,CDT安装也完成了,如下图所示:

5、 不过光有CDT还不行,CDT编译代码还是需要调用cygwin当中的编译工具进行,所以我们还需要手动配置C/C++的编译器,还是以NDK自带的hello-jni为例子,首先打开Eclipse,File->New->Project->Android->Android project->next,在New Android Project选项卡中,选Create project from existing source;在Location:按Browse找到NDK自带的Hello-jni目录。

选择Android SDK版本后,点击Finish,完成导入。

6、 把这个项目导入进来,导入后如下图所示:

 

7、 编译C文件:

 

右键单击HelloJni之后,点击Properties,弹出配置界面,之后再点击Builders,如下图所示:

点击New按钮,新添加一个编译器,点击后出现添加界面,选择Program,点击OK:

8、 点击OK后,出现了添加界面:

Main Tab界面, 填充以下内容:
Name:

编译器名称,随便填写。如:NDK_Builder

Location:

可执行工具的位置。即NDK安装目录下ndk-build.cmd的位置。

你可以点击Browser File System...按钮选择Android NDK安装目录下的ndk-build.cmd文件来指定Location。如下图:

 

你也可以设置一个变量来指定Android NDK的安装目录后设置Location。点击Variables按钮指定。如下图:

出现选择Variable的选择框。

单击Edit Variables...按钮。出现Variable管理的界面。单击New按钮添加Variable。

输入Variable的名称,如:ndk_home。然后单击Browse...按钮,选择Android NDK的安装目录后,单击OK。

至此,NDK的Variable设置完成。

然后,单击Main Tab界面上Location的Variables...按钮,选择刚才设置的ndk_home变量。如下图:

单击OK后,在Location的编辑框里会有选择的ndk-home变量,在其后面添加上/ndk-build.cmd,OK,Location设置完成。

如下图:


Working Directory:

要编译的C/C++程序的工作目录。一般指定到jni文件夹,因为所有的C/C++程序都在该文件夹内实现。

首先选择Working Directory里的Browse Workspace...按钮,如下图:

然后,选择要编译的项目HelloJni的jni文件夹。

 

9、 接着切换到Refresh选项卡,给Refresh resources upon completion打上钩,选择The Project containing the selected resource项,

表示只更新包含选中资源的项目,选中的资源项就是Main Tab选择的jni文件夹。

完成后如下图:

10、 最后切换到Build Options选项卡,勾选During auto builds,如下图所示:

Specify Resources 按钮单击后,选择HelloJni项目的 jni 文件夹。

11、单击 Apply OK 确认设置后,确保此 NDK 构建工具设置为列表中的第一个条目,方法是选择 Up 按钮,直到其位于 Builders 列表的顶部

记得一定要点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改,排到第一位后如下图所示:

12、 现在再次恭喜你,编译配置也配置完成啦,那么来试试看是否可以自动编译吧,打开左侧jni目录里的hello-jni.c文件把提示Hello from JNI!改改,如下图所示:

单击项目,选择Build Project后,在HelloJni项目下会多出libs文件夹,.so文件就存放在这里。

另外在Console控制台会输出成功编译的提示信息。

编译之后点击run按钮跑起来看看吧,如果模拟器当中出现了你新修改的提示信息,那么再一次恭喜你,已经全部配置成功了!

 

 

 

分享到:
评论

相关推荐

    “推荐系统”相关资源推荐

    推荐了国内外对推荐系统的讲解相关资源

    全渠道电商平台业务中台解决方案.pptx

    全渠道电商平台业务中台解决方案.pptx

    云计算企业私有云平台建设方案.pptx

    云计算企业私有云平台建设方案.pptx

    通过CNN卷积神经网络对盆栽识别-含图片数据集.zip

    本代码是基于python pytorch环境安装的。 下载本代码后,有个requirement.txt文本,里面介绍了如何安装环境,环境需要自行配置。 或可直接参考下面博文进行环境安装。 https://blog.csdn.net/no_work/article/details/139246467 如果实在不会安装的,可以直接下载免安装环境包,有偿的哦 https://download.csdn.net/download/qq_34904125/89365780 安装好环境之后, 代码需要依次运行 01数据集文本生成制作.py 02深度学习模型训练.py 和03pyqt_ui界面.py 数据集文件夹存放了本次识别的各个类别图片。 本代码对数据集进行了预处理,包括通过在较短边增加灰边,使得图片变为正方形(如果图片原本就是正方形则不会增加灰边),和旋转角度,来扩增增强数据集, 运行01数据集文本制作.py文件,会就读取数据集下每个类别文件中的图片路径和对应的标签 运行02深度学习模型训练.py就会将txt文本中记录的训练集和验证集进行读取训练,训练好后会保存模型在本地

    0.96寸OLED显示屏

    尺寸与分辨率:该显示屏的尺寸为0.96英寸,常见分辨率为128x64像素,意味着横向有128个像素点,纵向有64个像素点。这种分辨率足以显示基本信息和简单的图形。 显示技术:OLED(有机发光二极管)技术使得每个像素都能自发光,不需要背光源,因此对比度高、色彩鲜艳、视角宽广,且在低亮度环境下表现更佳,同时能实现更低的功耗。 接口类型:这种显示屏通常支持I²C(IIC)和SPI两种通信接口,有些型号可能还支持8080或6800并行接口。I²C接口因其简单且仅需两根数据线(SCL和SDA)而广受欢迎,适用于降低硬件复杂度和节省引脚资源。 驱动IC:常见的驱动芯片为SSD1306,它负责控制显示屏的图像显示,支持不同显示模式和刷新频率的设置。 物理接口:根据型号不同,可能有4针(I²C接口)或7针(SPI接口)的物理连接器。 颜色选项:虽然大多数0.96寸OLED屏为单色(通常是白色或蓝色),但也有双色版本,如黄蓝双色,其中屏幕的一部分显示黄色,另一部分显示蓝色。

    2024年欧洲高端家用P1.29 LED显示屏市场主要企业市场占有率及排名.docx

    2024年欧洲高端家用P1.29 LED显示屏市场主要企业市场占有率及排名

    5G智慧校园顶层设计方案.pptx

    5G智慧校园顶层设计方案.pptx

    在Delphi编程环境下实现上位机与PLC的串行通信

    介绍了通过引进 ActiveX控件 MSComm ,在 Delphi 6. 0 编程环境下 ,实现上位机与 Omron C200H PLC串行通信的一般方法 ,并给出了工程实例。该方法简单可靠、便于移植、实用性强 ,在工业控制中有着广泛的用途。

    程序设计训练之 Rust 编程语言 第四讲:泛型、特型与生命周期

    程序设计训练之 Rust 编程语言 第四讲:泛型、特型与生命周期

    山寨版的神州数码802.1x认证supplicant,基于pcap库的C语言的跨平台的原生客户端。.zip

    山寨版的神州数码802.1x认证supplicant,基于pcap库的C语言的跨平台的原生客户端。

    数字乡村建设方案.pptx

    数字乡村建设方案.pptx

    基于CRT(远程访问终端)+ARM(GEC)+Linux+C语言的视频监控系统.zip

    基于CRT(远程访问终端)+ARM(GEC)+Linux+C语言的视频监控系统

    建筑结构水电欧式6套(14.5x20.2)\施工图\A型施工图-建筑-空施00.dwg

    建筑结构水电欧式6套(14.5x20.2)\施工图\A型施工图-建筑-空施00.dwg

    基于ThinkPHP8.0搭建的后台管理系统EasyAdmin8

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    21121344 马丽娟.doc

    21121344 马丽娟.doc

    C++与操作系统等面试题63

    C++与操作系统等面试题63

    【工具模型】麦肯锡咨询师常用模型.pptx

    【工具模型】麦肯锡咨询师常用模型.pptx

    《LEARNING Vue.js》是一本免费电子书,由Stack Overflow社区的贡献者们创建和编写

    这本书的内容汇集了来自Stack Overflow上关于Vue.js的高质量回答和讨论,旨在帮助读者学习和掌握Vue.js框架的基本知识和应用技巧。 书籍特点: 社区贡献:内容来源于Stack Overflow社区中经验丰富的开发者,他们分享了自己的知识和解决方案。 免费获取:这本书可以免费获取,适合希望以低成本学习Vue.js的读者。 实用性强:内容包括实际问题的解决方案和最佳实践,帮助读者在真实项目中应用所学知识。 适合读者: 初学者:刚开始学习Vue.js,希望通过实际问题的解决方案来理解基本概念的读者。 有经验的开发者:希望深入了解Vue.js的具体应用和最佳实践,并从社区经验中受益的开发者。

    cy的python作业.zip

    Python零基础,大作业,加强,复习巩固!!!

Global site tag (gtag.js) - Google Analytics