六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1042|回复: 0

用Lazarus编译Android工程

[复制链接]

升级  16%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
8
 楼主| 发表于 2012-12-30 16:40:56 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">注意的事项有:

  • lazarus0.9.3.1版本以后的LCL才支持Android,所以lazarus必须使用大于此版本号的作为开发环境。
  • fpc在2.6及2.7后继的版本中去掉了Android的编译支持,需要使用2.5.1的版本来作为ppcrossarm的编译器。否则会出现找不到ld.so.3等错误,虽然有一些使用-FLlibdl.so 或 -FLlinker -sh 生成脚本(配置使用ppas.sh并修改资源文件)的办法来回避此问题,但经过测试,似乎并不能在apk上应用。
  • fpc2.5.1在fpc2.4上编译能顺利完成。但是在高版本的编译器似乎不顺利,如果要编译2.5.1版本,需要预装2.4.1的FPC,编译成功后,再删除。
  • NDK使用r7或r7b版本在目前的Lazarus1.0.2中并没有问题,早期根据网上的资料,有BUG存在
编译环境的过程
  参考http://wiki.freepascal.org/Setup_Cross_Compile_For_ARM,并在下面有一个副本http://www.cnblogs.com/littlestone08/articles  /2752782.html,需要注意的问题有以下几点

  • 关于Bintuils,Android的汇编器as是EABI5的形式,而默认的LINUX一般都是0,需要在调用as的时候加上 -meabi= 5 $@ 的参数来调用,尤其是使用预编译器2.5.1的时候,bintuils目录应该处于/usr/local/bin中,好像当时编译的时候路径就是这样的,所以使用的时候要还原当时的编译环境
  • 如果要使用预编译的ppcrossarm,需要在/usr/bin建立一个ppcarm软件链接,因为fpc是使用ppcarm来进行调用的。
  • 关于.fpc.cfg的配置:要包含原默认的fpc.cfg,并要正确设置参数,比如,我的预编译工作放在我的工作目录中,目录结构为
  
<div class="cnblogs_Highlighter">mei@mei-ubuntu:~/FPC4Android$ lsarm-linux-as  arm-linux-as_org  ppcrossarm  unitsmei@mei-ubuntu:~/FPC4Android$ pwd/home/mei/FPC4Android
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表