现在的位置: 首页 > 综合 > 正文

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

2018年03月19日 ⁄ 综合 ⁄ 共 3166字 ⁄ 字号 评论关闭

做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按钮跑起来看看吧,如果模拟器当中出现了你新修改的提示信息,那么再一次恭喜你,已经全部配置成功了!

抱歉!评论已关闭.