準備工作:
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號