eclipse编译ndk
❶ eclipse怎样编译运行c++代码
以引擎自带的HelloCpp为例配置C++的的自动编译。
在eclipse中导入hellocpp工程。操作路径:eclipse--file--import
工程导入后,右击工程--properties
取消CDT
builder。
然后点击New新建一个我们自己的builder,选择program。指定ndk-build.cmd来编译我们的项目,下面的工作路径将作为参数传入给ndk-build.cmd
然后设置环境变量:
添加NDK_MODULE_PATH变量,注意要写两个路径[cocos2d-x安装目录和其目录下\cocos2dx\platform\third_party\android\prebuilt],用分号分开
例如:F:/cocos2d-2.1rc0-x-2.1.2;F:/cocos2d-2.1rc0-x-2.1.2/cocos2dx/platform/third_party/android/prebuilt
接着切换到build
options
最后点OK保存。
一切顺利的话就会看到已经开始自动编译引擎和c++代码:
因为不是执行build_native.sh编译本地代码,所以别忘了手动拷贝下hellocpp工程下resource中的资源到android工程assets.
❷ Eclipse中NDK无法编译(哪怕是一个新建的空白项目)
首先eclipse能运行.cmd文件吗?cmd不是windows命令行吗,能直接在系统运行。另外错误报的信息是没有在classpath找到这个文件,一是你的ndk-build.cmd文件在E:\\NDK目录下不存在,二有可能是eclipse
java
compiler不支持编译.cmd文件,然后在classpath下找不到生成的.class文件,同样会报错。因为看不到你的project,所以只能根据猜测第二种情况要大一些。
❸ eclipse会自动调用ndk-build编译jni吗
一、写好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按钮跑起来看看吧,如果模拟器当中出现了你新修改的提示信息,那么再一次恭喜你,已经全部配置成功了!
❹ 如何在eclipse中用ndk编译jni
工具:
eclipse
步骤
1、右键要编译jni的工程,点击
2、简单使用NDK编译
3、点击new添加以个编译器
4、简单使用NDK编译
5、填好相关路径参数
6、简单使用NDK编译
7、勾选如下选项
8、简单使用NDK编译
9、勾选如下选项
10、简单使用NDK编译
11、点击右下角的按钮
12、简单使用NDK编译
13、选择要编译的工程
14、简单使用NDK编译
15、最后勾上新建的这个编译器
❺ 如何使用Eclipse的NDK开发动态库,静态库
1.动态库:
一、创建动态链接库1、创建工程new->project->c++ project选择Shared Library->Empty Project.输入工程名a,点击finish,完成工程的创建。
2、编写代码在windows下封装动态链接库时对要封的函数要用__declspec(dllexport)来标明,在linux下不用,在linux下只需要直接把要封的函数的声明放到一个。h文件中,要用这个库时将相应的。h文件加载到工程中。
3、生成动态链接库编译代码,成功后在Debug目录下会生成liba.so文件。
二、动态链接库的使用1、创建工程new->c++ project->Executable->Empty Project.工程名为libr 2、编写所需代码,并将相应的。h文件放到工程目录下并加载到工程中。
3、加入动态链接库liba.so右键工程Properites->C/C++Build->Settings,然后如下图
编译通过!
为了我们的程序能够正确载入,我们需要让我们的程序在我们的系统范围内也能够找到我们的库。这时候我们需要在设置一下。
❻ android-ndk-r12b 在eclipse上怎么配置环境变量
一.插件的安装
如果你下载的是Eclipse Standard,请下载对应版本的cdt(我直接使用的是Eclipse IDE for C/C++ Developers 不要安装cdt的哦,我人比较懒,(*^__^*) 嘻嘻……)
比如 CDT 8.1.2 for Eclipse Juno cdt-master-8.1.2.zip,插入也比较简单和adt安装方式一样。再次不在赘述。以前NDK的版本还要Sequoyah插件(好久不更新了)来进行本地开发,现在不需要了。
二.环境的配置
1).首先进行配置NDK的配置,打开Eclipse的 Window->preferences->Android->NDK 然后选择路径你的NDK路径我的目录如下D:\android-sdk\android-ndk-r9 这个目录下有docs,sources,tests,samples e等等。 然后点击Apply,OK即可
2).首先导入hello—jni工程,然后点击右键->Properties你看见如下图所示的界面,这不是一个可以编译的NDK工程。你需要运行Cygwin或者在Eclipse配置。
我们首先使用Cygwin来生成程序的.so文件。打开Cygwin运行命令cd $ndk 这个ndk是之前你配置Cygwin环境变量设置的字符。然后cd samples/hello-jni
然后$ndk/ndk-build,你就可以看见生成.so文件成功的页面,这时候刷新或者clean工程 点击run as运行android程序。如下图:三.Eclipse 工程配置在Eclipse中开发c/c++
第二步运行完之后,你会发现你把Hello from JNI修改为AAA(随便写的) 这个字符串不好使,输出之后还是Hello from JNI 。你需要再次运行Cygwin才可以。当然这样比较麻烦,你可以在Eclipse中配置一下,就不要在运行Cygwin了。直接运行eclipse就可以了。
1)在HelloJni上右键->New->other(这一步一定是other)->c/c++>Convert to a C/C++ Project(Adds c/c++ Nature)->Next
然后选择你的工程HelloJni,选择转化为c工程,选择Makefile Project Cygwin GCC,点击Finish,再次点击Finish即可
2)你发现你的工程.c文件有很多错误。这个时候点击工程右键->Propreties这个时候你会发现和第二步的2)图多了二项 c/c++ Build 和c/c++ General.
点击 c/c++ Build
Use defult build commond的勾去掉 在Build command 填入bash <NDK路径>\ndk-build 例如bash D:\android-sdk\android-ndk-r9\ndk-build点击Apply OK即可。
点击c/c++ General
打开列表点击Paths and Symbols 在Includes 你看见Assembly GNU C (如果你在1)步选择的C++project还会有GNU C++) .这个时候要选择你所要的依赖库,由于hello-jni不需要过多的库文件所以
只需要点击Add D:\android-sdk\android-ndk-r9\platforms\android-9\arch-arm\usr\include 这样你就可以直接修改在Run as了。Ok成功运行。
❼ linux下ndk-bulid编译形成了so文件,在windows环境下的eclipse怎么使用
可以直接在android工程下使用,因为android就是linux内核。
android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。
2.安装android-ndk开发包,这个开发包可以在google android : 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库
3.android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。
NDK编译步骤:
选择 ndk 自带的例子 hello-jni ,位于E:android-ndk-r5sampleshello-jni( 根据具体的安装位置而定 ) 。
2.运行 cygwin ,输入命令 cd /cygdrive/e/android-ndk-r5/samples/hello-jni ,进入到 E:android-ndk-r5sampleshello-jni 目录。
3.输入 $NDK/ndk-build ,执行成功后,它会自动生成一个 libs 目录,把编译生成的 .so 文件放在里面。 ($NDK是调用我们之前配置好的环境变量, ndk-build 是调用 ndk 的编译程序 )
4.此时去 hello-jni 的 libs 目录下看有没有生成的 .so 文件,如果有,ndk 就运行正常啦。