精品项目

  • 首页 精品项目 Free Pascal 的交叉编译

Free Pascal 的交叉编译

2025-03-31 22:07:19
4


1.下载源码

https://sourceforge.net/projects/freepascal/files/Source/

1.1(可选)直接下载可执行文件

https://sourceforge.net/projects/freepascal/files/

Linux to Window:

从FPC源码编译交叉环境:

#假设FPC源码路径在/root/fpctest/fpc-3.2.2/

cd /root/fpctest/fpc-3.2.2/

#选一即可,没必要全部编译

make clean all OS_TARGET=win64 CPU_TARGET=x86_64

make clean all OS_TARGET=win32 CPU_TARGET=i386

Free Pascal 的交叉编译

#Those steps take awhile each, watch for errors as the compile report scrolls by. It builds Windows versions of the units in the FPC-SRC tree. The next lines are pretty quick, they copies the units to /usr/lib/fpc/3.2.2/units and the ones after that makes a symlinks to the crosscompilers.

make crossinstall OS_TARGET=win64 CPU_TARGET=x86_64 INSTALL_PREFIX=/root/fpctest/fpc

make crossinstall OS_TARGET=win32 CPU_TARGET=i386 INSTALL_PREFIX=/root/fpctest/fpc

#由于make脚本并不会把新的ppc文件放到fpc/bin,所以要做个软连接

ln -sf /root/fpctest/fpc/lib/fpc/3.2.2/ppcrossx64 /root/fpctest/fpc/bin/ppcrossx64

ln -sf /root/fpctest/fpc/lib/fpc/3.2.2/ppcross386 /uroot/fpctest/fpcsr/bin/ppcross386

/root/fpctest/test.pas

uses

{$IFDEF UNIX}

cthreads,

{$ENDIF}

Classes;

begin

writeln('windows linux');

end.

编译:

cd /root/fpctest/myfpc/bin/

./fpc -Pi386 -Twin32 -Fu/root/fpctest/myfpc/lib/fpc/3.2.2/units/i386-win32/* /root/fpctest/test.pas

#如果要把-Fu的lib目录持久化:

#修改/etc/fpc.cfg

#添加
-Fu/root/fpctest/myfpc/lib/fpc/3.2.2/units/i386-win32/*

Windows to aarch64-linux:

用codetyphon安装(下载/编译 二选一)工具链后

C:\codetyphon\fpc\fpc32\bin\i386-win32\fpc.exe -Paarch64 -Tlinux -FlC:\codetyphon\binLibraries\aarch64-linux -FuC:\codetyphon\fpc\fpc32\units\aarch64-linux F:\projects\pascal\test2\test.pas

6686体育线上登录

结论:

直接下载官方编译好的工具链也可以,自己从源码编译也可以,反正要保证FPC/bin目录下有交叉编译需要的ppcXXX,比如ppcrossa64(编译aarch64用的)、ppcrossarm(编译arm用的)、ppcrossx64(32位fpc编译64位用的)……

fpc.exe相当于一个启动器,由他决定调用哪个ppc

编译指令的-Fu要指定到FPC目录下的units文件夹

-Fl要指定到目标系统的lib文件(具体怎么得来还不清楚,貌似要从目标系统拷贝过来)

尽量用32位FPC、Lazarus,64位的交叉编译据说有问题


通过codetyphon可以方便的下载或编译工具链

codetyphon的目录结构如下:

C:\codetyphon\fpc\fpc32:FPC目录

C:\codetyphon\binLibraries:即-Fl要指向的

C:\codetyphon\fpc\fpc32\units:即-Fu要指向的

9个应氏杯前任冠军8个次届一轮游,唯独李昌镐例外

又一个棋界魔咒?6686体育线上登录优待上届冠亚军直接晋级次届本赛不独应氏杯,几乎世界赛都如此,三星杯甚至优待上届前四。应氏杯几经变革优待上届冠亚军直接晋级16强,到了第10...



“东方美人”朱琳,73岁丁克一辈子的她,和二婚丈夫把日子过成诗

在86版《西游记》中,饰演女儿国国王的朱琳给全国观众留下了深刻的印象。剧中的女儿国国王优雅端庄,剧外的朱琳也同样是美丽大方的“东方美人”。经历了两段婚姻的她,如今和二婚丈夫选择丁克,依然优雅的生活。走上演员之路1952年,朱琳出生在北京,父母都是知识分子。受到他们的影响,朱琳自幼便对艺术很感兴趣,...