Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 11011|回复: 18

[分享]fpc gui apps on arm11

[复制链接]

该用户从未签到

发表于 2011-1-3 18:19:21 | 显示全部楼层 |阅读模式
w w w.lazarus.freepascal.org/index.php/topic,8084.0.html


今天按照上面连接里的教程交叉编译了fpc 2.5.1并顺利实现在lazarus里交叉编译




最终下到arm11的板子里运行成功,与各位分享




图片里运行的是在tachart控件里画正弦波^O^

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-3 18:25:03 | 显示全部楼层
教程网址请去掉w w w中的空格

w w w.lazarus.freepascal.org/index.php/topic,8084.0.html
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-3 18:26:10 | 显示全部楼层
需要提前交叉编译好arm下的X11和gtk on x11
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-1-5 09:17:28 | 显示全部楼层

回 2楼(jnny_cn) 的帖子

终于等到了!!!
请问大虾,如何编译交叉编译好arm下的X11和gtk on x11
能否提供比较完整的操作步骤???

不胜感激!!!!!!!!
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-5 10:30:44 | 显示全部楼层
以编译arm11架构处理器为列

1)   下载并安装scratchbox
连接:h t t p://www.scratchbox.org/
以上网的文档里有教程也有相关下载
安装好scratchbox建立帐户并设定好新的target


2)  接下来的操作都在scratchbox中
下载以依赖下库(不都是必须,可根据需要裁减),解压到一个目录中
按照以下顺序编译:

cd zlib-1.2.5
make distclean
./configure --shared --prefix=/usr
make
make install
cd ..

cd glib-2.26.0
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd libpng-1.2.44
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd jpeg-7
make distclean
./configure --enable-shared --enable-static --prefix=/usr
make
make install
cd ..

cd tiff-3.9.4
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd expat-2.0.0
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd freetype-2.4.4
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd atk-1.32.0
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd libxml2-2.7.8
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd fontconfig-2.8.0
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd pixman-0.21.2
make distclean
./configure --disable-arm-neon --prefix=/usr
make
make install
cd ..

cd sqlite-3.7.4
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd tslib-1.0
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd links-1.00
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd openssl-1.0.0c
make distclean
./Configure --prefix=/usr --openssldir=/usr/openssl linux-armv4
make
make install
cd ..

cd Python-2.7
make distclean
./configure --prefix=/usr
make
make install
cd ..

执行 ldconfig
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-5 11:01:28 | 显示全部楼层
接下来的操作都在scratchbox中

3)编译X11与相关依赖库
h t t p://www.x.org/releases/X11R7.6/src/
在以上网之中把除了everything目录外其他目录中的都下下来(不是都必要,但全下下来省心)并保持原目录结构不变,解压缩
这里假设相关目录督保存在X11R76这个目录下

执行:export PYTHON=/usr/bin/python2.7

1)进入util目录
    进入util-macros-1.11.0目录
        make distclean
        ./configure --prefix=/usr
        make
        make install
        
2)进入font目录
    进入font-util-1.2.0目录
    make distclean
    ./configure --prefix=/usr
    make
    make install
   
3)进入proto目录
    分别进入以下目录,执行以下命令
    make distclean
    ./configure --prefix=/usr
    make
    make install   
   
    目录列表(省略版本号)
    bigreqsproto
    compositeproto
    damageproto
    dmxproto
    dri2proto
    fixesproto
    fontsproto
    glproto
    inputproto
    kbproto
    randrproto
    recordproto
    renderproto
    resourceproto
    scrnsaverproto
    videoproto
    x11proto
    xcmiscproto
    xextproto
    xf86bigfontproto
    xf86dgaproto
    xf86driproto
    xf86vidmodeproto
    xineramaproto
    xcb(在xcb目录中)
   
4)进入lib目录
    分别进入以下目录,执行以下命令
    make distclean
    ./configure --prefix=/usr
    make
    make install   
   
    目录列表(省略版本号)
    libxtrans
    libXau
    libXdmcp
   
    pthread-stubs(在xcb目录中)
    libxcb(在xcb目录中)
    util(在xcb目录中)
   
    libX11
    libXext
    libdmx
    libfontenc
    libFS
    libICE
    libSM
    libXt
    libXmu
    libXpm
    libXaw
    libXfixes
    libXcomposite
    libXrender
    libXdamage
    libXcursor
    libXfont
    libXft
    libXi
    libXinerama
    libxkbfile
    libXrandr
    libXRes
    libXScrnSaver
    libXtst
    libXv
    libXvMC
    libXxf86dga
    libXxf86vm
    libpciaccess
   
5)进入data目录
    进入xbitmaps-1.1.1目录
    make distclean
    ./configure --prefix=/usr
    make
    make install
   
6)进入app目录
    分别进入以下目录,执行以下命令
    make distclean
    ./configure --prefix=/usr
    make
    make install
   
    目录列表(省略版本号)
    bdftopcf
    iceauth
    luit
    mkfontdir
    mkfontscale
    sessreg
    setxkbmap
    x11perf
    xauth
    xbacklight
    xcmsdb
    xcursorgen
    xdpyinfo
    xev
    xhost
    xinit
    xinput
    xkbcomp
    xkbevd
    xkbutils
    xkill
    xlsatoms
    xmodmap
    xprop
    xrandr
    xrdb
    xrefresh
    xset
    xsetroot
    xvinfo
    xwd
    xwininfo
    xwud
   
7)进入xserver目录
    进入xorg-server-1.9.3目录
    make distclean
    ./configure --disable-glx --enable-dri=no --enable-dri2=no --prefix=/usr
    make
    make install
   
8)进入driver目录
    分别进入以下目录,执行以下命令
    make distclean
    ./configure --prefix=/usr
    make
    make install
   
    目录列表(省略版本号)
    xf86-input-evdev
    xf86-input-keyboard
    xf86-input-mouse
    xf86-input-void
    xf86-input-tslib
   
    xf86-video-fbdev
   
至此xorg server 编译完毕
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-5 11:08:34 | 显示全部楼层
4)编译gtk与相关依赖库
接下来的操作都在scratchbox中
下载以依赖下库(不都是必须,可根据需要裁减),解压到一个目录中
按照以下顺序编译:

ldconfig

cd cairo-1.10.0
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd pango-1.28.3
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd gtk+-2.20.1
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd libiconv-1.13.1
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd gtk-engines-2.20.1
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd libmatchbox-1.9
make distclean
./configure --prefix=/usr
make
make install
cd ..

cd matchbox-window-manager-1.2
make distclean
./configure --prefix=/usr
make
make install
cd ..

ldconfig

至此gtk+编译完成

到此为止X11(xorg)与gtk全部的文件都安装在scratchbox但前tatget下的/usr目录下,
可以将这个目录烧写到硬件文件系统的/usr下,或通过nfs加载
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-5 11:17:02 | 显示全部楼层
以上只是大致的步骤,交叉编译xorg是一件很繁琐的事情,需要有耐心,出现错误要多看错误信息与察看configure文件,多google

以上编译选项可在armv5,armv6下运行

另外如果是编译armv4架构的要在所有的编译选项处加上-march=armv4t

另外如果是编译armv7架构的要在所有的编译选项处加上-mthumb -march=armv7-a
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-5 11:40:26 | 显示全部楼层
以上编译出的xorg基本上具有全部功能与特性,没有经过什么裁减

可以根据实际需要查看configure的设定进行适当裁减
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-5 12:00:27 | 显示全部楼层
稍后将提供移植fpc到arm11的简要过程
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 20:29 , Processed in 0.045624 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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