准备工作:
1、安装开发环境所需的依赖工具:
sudo apt install make gcc binutils build-essential subversion zip unzip libx11-dev libgtk2.0-dev libcairo2-dev libpango1.0-dev
2、ppcx64 for linux fpc引导编译器
注意:建议用低版本的引导编译器,如果引导编译器的版本比fpcsrc的版本高,编译时有可能出错。如引导编译器是331的,编译322 fpcsrc就会有出错提示。
3、分别下载fpc/lazarus源码,解压后的目录名重新命名为fpcsrc和lazarus
4、FPC/Lazarus的目录结构:分别创建QFLazarus、fpcbootstrap、config_lazarus目录
/home/用户名
|--QFLazarus
|--config_lazarus
|--fpcbootstrap
|--fpcsrc
|--lazarus
一、编译fpcsrc
1、将ppcx64引导编译器拷贝到fpcbootstrap目录

在fpcsrc目录执行以下编译命令:
make install CPU_TARGET=x86_64 OS_TARGET=linux CPU_SOURCE=x86_64 OS_SOURCE=linux OPT='-gl -O2' FPC=/home/lbz/QFLazarus/fpcbootstrap/ppcx64 OVERRIDEVERSIONCHECK=1 PREFIX=/home/lbz/QFLazarus/fpc -j16


2、fpc编译完成后,在fpc/bin目录执行fpcmkcfg生成fpc.cfg配置文件:
cd /fpc/bin ./fpcmkcfg -o fpc.cfg
3、修改fpc.cfg,将-Fu/units/路径用绝对目录指定
# Search for $fpctarget/$fpcsubarch-$fpcmemorymodel/ subdirectory first # for i8086 CPU #ifdef cpui8086 -Fu/units/$fpctarget/$fpcsubarch-$fpcmemorymodel -Fu/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/* -Fu/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl #endif # searchpath for units and other system dependent things -Fu/units/$fpctarget -Fu/units/$fpctarget/* -Fu/units/$fpctarget/rtl #IFDEF FPCAPACHE_1_3 -Fu/units/$fpctarget/httpd13/ #ELSE #IFDEF FPCAPACHE_2_0 -Fu/units/$fpctarget/httpd20 #ELSE -Fu/units/$fpctarget/httpd22 #ENDIF #ENDIF
改为:
# Search for $fpctarget/$fpcsubarch-$fpcmemorymodel/ subdirectory first # for i8086 CPU #ifdef cpui8086 -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/$fpcsubarch-$fpcmemorymodel -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/* -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl #endif # searchpath for units and other system dependent things -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/* -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/rtl #IFDEF FPCAPACHE_1_3 -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/httpd13/ #ELSE #IFDEF FPCAPACHE_2_0 -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/httpd20 #ELSE -Fu/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/units/$fpctarget/httpd22 #ENDIF #ENDIF
将修改后的fpc.cfg拷贝到~/.fpc.cfg
cp fpc.cfg ~/.fpc.cfg
4、拷贝/home/lbz/QFLazarus/fpc/lib/fpc/3.3.1目录的ppcx64到/home/lbz/QFLazarus/fpc/bin目录
cd fpc/bin cp /home/lbz/QFLazarus/fpc/lib/fpc/3.3.1/ppcx64 /home/lbz/QFLazarus/fpc/bin
到此,fpc源码已编译完成
二、编译lazarus
1、下载最新的lazarus源码,解压后进入lazarus目录执行以下命令:
make --directory=/home/lbz/QFLazarus/lazarus USESVN2REVISIONINC=0 FPC=/home/lbz/QFLazarus/fpc/bin/fpc PP=/home/lbz/QFLazarus/fpc/bin/ppcx64 PREFIX=/home/lbz/QFLazarus/lazarus INSTALL_PREFIX=/home/lbz/QFLazarus/lazarus INSTALL_BASEDIR=/home/lbz/QFLazarus/lazarus LAZARUS_INSTALL_DIR=/home/lbz/QFLazarus/lazarus/ FPCDIR=/home/lbz/QFLazarus/fpcsrc FPCMAKE=/home/lbz/QFLazarus/fpc/bin/fpcmake PPUMOVE=/home/lbz/QFLazarus/fpc/bin/ppumove OPT='-vw-n-h-l-d-u-t-p-c-' CPU_SOURCE=x86_64 OS_SOURCE=linux CPU_TARGET=x86_64 OS_TARGET=linux

编译lazarus可能出现以下错误:
/home/lbz/QFLazarus/lazarus/ide/lazarus.pp(88,2) Fatal: (2013) Cannot open include file "revision.inc"
只需在lazarus/ide目录添加revision.inc文件
// Created by Svn2RevisionInc const RevisionStr = '';
然后重新编译就可以,下图是lazarus编译完成的截图。


2、lazarus编译完成后在lazarus目录创建lazarus.cfg,内容为:
--primary-config-path=/home/lbz/QFLazarus/config_lazarus
保存后退出。然后保存退出。
在lazarus目录执行:
./lazarus

设置正确的编译器:

设置正确fpc编译器后就可以看到lazarus IDE:

至此,已完成fpc/lazarus手工编译安装全过程。

浙公网安备 33010602011771号