最近有个项目,需要在tizen平台上写c++的native应用,实现一个简单的http server,要提供一些restful API,响应简单的http请求。
项目的具体内容不说了,只说一下碰到的编译问题吧。
由于测试机是ARM的,所以需要编译ARM版本。
合作方提供了远程编译方式,但受限于网络权限问题,
我们无法提交编译,只能先将代码发送给合作方,由对方编译,
这给调试带来很大的不便。
试了试用安卓的NDK编译,虽然编译成功,但放到设备上不能运行。
看来tizen跟android二进制不兼容啊。
所幸tizen sdk还算全,提供了ARM的tool-chain,因此可以通过tizen sdk编译native应用。
下面具体说一下过程。
首先需要下载tizen sdk2.0,在这里http://download.tizen.org/sdk/sdk-images/2.0/
img比较大,1.7G,耐心点。验证发现只有2.0的编译工具可用,后续版本都有问题。
然后安装sdk。
tizen sdk的依赖比较多。
我的系统是ubuntu,要装tizen sdk需要升级到ubuntu11.04以上。
另外需要安装sun jdk,open sdk是不行的。
这里有篇文章(http://www.myexception.cn/other/480362.html)介绍如果安装了多个jdk,如何设置默认的jdk。
还有一些依赖,照提示装就行,不细说了。
装完后sdk会在环境变量中增加几个命令,在tizen文档中称为Command Line Interface
(https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.native.appprogramming%2Fhtml%2Fcover_page.htm)
我用到的命令有两个,native-gen和native-make。
native-gen会在当前目录下生成一个叫empty的目录,里面是根据模版生成好的项目文件。
进入empty中的CommandLineBuild目录,运行native-make -t device就可以生成ARM版的binary了。
当然这个binary是根据模版自带的几个c++源文件生成的。
你只要把这几个源文件替换为自己的文件,再把makefile调整一下就可以编译自己的项目了。
当然tizen sdk还可以编译打包widget,以后再介绍。