Difference between revisions of "Build current FPC and Lazarus for Raspbian/zh CN"

From Lazarus wiki
(为树莓派构建最新的FPC和Lazarus)
(为树莓派构建最新的FPC和Lazarus)
Line 12: Line 12:
  
 
# 安装 Subversion: <code>sudo apt install subversion</code>
 
# 安装 Subversion: <code>sudo apt install subversion</code>
# 获取bootstrap [https://sourceforge.net/projects/freepascal/files/Linux/3.0.2/fpc-3.0.2.arm-linux-eabihf-raspberry.tar/download FPC 编译器]。最新版本的编译器是使用其先前版本的编译器来编译。
+
# 获取bootstrap [https://sourceforge.net/projects/freepascal/files/Linux/3.0.2/fpc-3.0.2.arm-linux-eabihf-raspberry.tar/download FPC 编译器]。最新版本的编译器是使用其先前版本的编译器来编译的。
 
# 提取编译器。这将创建一个<code>fpc-3.0.2.arm-linux</code>目录。(注意:这个文件夹必需存在于一个 linux 文件系统上 [像文档文件夹] ,像 FAT 之类不允许接下来步骤的工作)。
 
# 提取编译器。这将创建一个<code>fpc-3.0.2.arm-linux</code>目录。(注意:这个文件夹必需存在于一个 linux 文件系统上 [像文档文件夹] ,像 FAT 之类不允许接下来步骤的工作)。
 
# 在这个目录中,以 pi 用户,运行<code>./install.sh</code>
 
# 在这个目录中,以 pi 用户,运行<code>./install.sh</code>
 
# 在四个提示处,回答<code>Enter, n, n, n</code>: 这是,接受建议的目录<code>/home/pi/fpc-3.0.2</code>,没有文本模式IDE,没有文档,没有示例。忽略<code>tar</code>警告。注意额外文件将被写入到<code>/home/pi</code>: <code>.fpc.cfg</code>, <code>.config/fppkg.cfg</code>, <code>.fppkg/config/default</code>中。当构建完成后,删除临时的bootstrap编译器,这些文件和 <code>/home/pi/fpc-3.0.2</code>安装目录需要被删除。
 
# 在四个提示处,回答<code>Enter, n, n, n</code>: 这是,接受建议的目录<code>/home/pi/fpc-3.0.2</code>,没有文本模式IDE,没有文档,没有示例。忽略<code>tar</code>警告。注意额外文件将被写入到<code>/home/pi</code>: <code>.fpc.cfg</code>, <code>.config/fppkg.cfg</code>, <code>.fppkg/config/default</code>中。当构建完成后,删除临时的bootstrap编译器,这些文件和 <code>/home/pi/fpc-3.0.2</code>安装目录需要被删除。
 
#临时添加FPC安装目录到PATH: <code>export PATH=$PATH:$HOME/fpc-3.0.2/bin</code>。如果你在完成FPC构建之前由于任何原因必须重新启动,那么你必需再次执行此步骤。
 
#临时添加FPC安装目录到PATH: <code>export PATH=$PATH:$HOME/fpc-3.0.2/bin</code>。如果你在完成FPC构建之前由于任何原因必须重新启动,那么你必需再次执行此步骤。
# 测试是否一切正常: <code>fpc abcd</code>。This invokes the just installed compiler trying to compile a non-existent file (abcd). A multiline message will be shown including the compiler version.
+
# 测试是否一切正常: <code>fpc abcd</code>。这将援引刚刚安装的编译器来尝试编译一个不存在的文件(abcd)。这将显示一条包含编译器版本的多行消息。
 
# 非步骤注释:下面步骤主要基于 [https://wiki.lazarus.freepascal.org/How_to_setup_a_FPC_and_Lazarus_Ubuntu_repository#Creating_the_deb_files_yourself 这个]
 
# 非步骤注释:下面步骤主要基于 [https://wiki.lazarus.freepascal.org/How_to_setup_a_FPC_and_Lazarus_Ubuntu_repository#Creating_the_deb_files_yourself 这个]
 
# 安装开发库: <code>sudo apt install libgtk2.0-dev libgpm-dev libncurses-dev</code>
 
# 安装开发库: <code>sudo apt install libgtk2.0-dev libgpm-dev libncurses-dev</code>
 
# <code>mkdir ~/pascal</code>
 
# <code>mkdir ~/pascal</code>
 
# <code>cd ~/pascal</code>
 
# <code>cd ~/pascal</code>
# <code>svn co <nowiki>https://svn.freepascal.org/svn/fpc/tags/release_3_0_4</nowiki> fpc</code>, you have to be online for this and the next step to work.
+
# <code>svn co <nowiki>https://svn.freepascal.org/svn/fpc/tags/release_3_0_4</nowiki> fpc</code>,你必须联网才能完成这项工作和接下来的工作。
 
# <code>svn co <nowiki>https://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_6</nowiki> lazarus</code>
 
# <code>svn co <nowiki>https://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_6</nowiki> lazarus</code>
 
# <code>cd lazarus/tools/install</code>
 
# <code>cd lazarus/tools/install</code>

Revision as of 03:06, 16 April 2020

English (en) 中文(中国大陆)‎ (zh_CN)

为树莓派构建最新的FPC和Lazarus

Raspbian Buster (基于Debian 10 Buster),在存储库中有开用FPC和Lazarus, but they suffer from the same "design decisions" that don't allow for a nice experience, namely the smooth IDE rebuilding capability based on source packages that is possible with FPC/Lazarus official .deb packages vs the crippled experience with the official Debian/Raspbian packages. One wishes there were official FPC/Lazarus packages for Raspbian as there are for Intel Debian/Ubuntu, which are also frequently updated; not being that the case (at least for now), this page shows the steps for building your own FPC, FPC-source and Lazarus packages for Raspbian. Example shows steps for Lazarus 2.0.6 which includes FPC 3.0.4, most recent at the time of writing. Adjust accordingly.

要求:

  • 树莓派4版本B, 4 GB (更少的内存将需要swap), with appropriate cooling (author uses aluminum case that doubles as heatsink) to avoid throttling due to excessive heat
  • Latest Raspbian Buster fully updated

步骤:

  1. 安装 Subversion: sudo apt install subversion
  2. 获取bootstrap FPC 编译器。最新版本的编译器是使用其先前版本的编译器来编译的。
  3. 提取编译器。这将创建一个fpc-3.0.2.arm-linux目录。(注意:这个文件夹必需存在于一个 linux 文件系统上 [像文档文件夹] ,像 FAT 之类不允许接下来步骤的工作)。
  4. 在这个目录中,以 pi 用户,运行./install.sh
  5. 在四个提示处,回答Enter, n, n, n: 这是,接受建议的目录/home/pi/fpc-3.0.2,没有文本模式IDE,没有文档,没有示例。忽略tar警告。注意额外文件将被写入到/home/pi: .fpc.cfg, .config/fppkg.cfg, .fppkg/config/default中。当构建完成后,删除临时的bootstrap编译器,这些文件和 /home/pi/fpc-3.0.2安装目录需要被删除。
  6. 临时添加FPC安装目录到PATH: export PATH=$PATH:$HOME/fpc-3.0.2/bin。如果你在完成FPC构建之前由于任何原因必须重新启动,那么你必需再次执行此步骤。
  7. 测试是否一切正常: fpc abcd。这将援引刚刚安装的编译器来尝试编译一个不存在的文件(abcd)。这将显示一条包含编译器版本的多行消息。
  8. 非步骤注释:下面步骤主要基于 这个
  9. 安装开发库: sudo apt install libgtk2.0-dev libgpm-dev libncurses-dev
  10. mkdir ~/pascal
  11. cd ~/pascal
  12. svn co https://svn.freepascal.org/svn/fpc/tags/release_3_0_4 fpc,你必须联网才能完成这项工作和接下来的工作。
  13. svn co https://svn.freepascal.org/svn/lazarus/tags/lazarus_2_0_6 lazarus
  14. cd lazarus/tools/install
  15. 编辑create_fpc_deb.sh,查找包含下面内容的行: arm) ppcbin=arm; FPCArch=arm;;, (当前行109). 在其下面复制和粘贴这行,因此它将出现两次。编辑复制的行如下: armhf) ppcbin=arm; FPCArch=arm;;. 现在保存更改和退出。
  16. 运行脚本: ./create_fpc_deb.sh fpc ~/pascal/fpc/。这将使用 bootstrap 编译器编译最新的编译器源文件。它将花费大约11分钟时间。将创建一个.deb文件:fpc-laz_3.0.4-yymmdd_armhf.deb;在编译结束时将显示准确的名称。重新命名文件,使用(注意:不要输入括号): mv [在编译结束时显示的文件名称] fpc-laz_3.0.4_armhf.deb
  17. 你已经完成FPC构建。重启树莓派来摆脱临时路径。
  18. 卸载 bootstrap FPC: rm -rf ~/.fpc.cfg ~/.config/fppkg.cfg ~/.fppkg ~/fpc-3.0.2 ~/tmp。检查你刚刚做了什么: fpc abcd应该说找不到命令。
  19. 安装刚刚创建的 FPC Debian 软件包: sudo dpkg -i ~/pascal/lazarus/tools/install/fpc-laz_3.0.4_armhf.deb。检查它是否工作: fpc abcd 应该显示新安装的FPC编译器。
  20. cd ~/pascal/lazarus/tools/install
  21. ./create_fpc_deb.sh fpc-src ~/pascal/fpc/. 这个将在大约3分钟时间内构建源文件软件包: fpc-src_3.0.4-yymmdd_armhf.deb。重新命名: mv fpc-src_3.0.4-yymmdd_armhf.deb fpc-src_3.0.4_armhf.deb
  22. 编辑create_lazarus_deb.sh,查找包含以下内容的行: echo "$Arch is not supported.", (当前行 86)。复制上面3行,并在它们下面粘贴:此时,是复制行 83 到 85 ,并在行 85 和86 之间粘贴。在刚刚粘贴的行(行 86-88)中,替换sparcarmhf,替换ppcsparcppcarm。查找下面第一个 fi ;在其下面复制和粘贴(在行 91 下面复制和粘贴行 91 ,因此行 91 和 92 是相同的)。在这里对你编码员来说,你正在添加另一个 if 到一个嵌套的 if 中,与其对应的fi。现在保存并退出。
  23. ./create_lazarus_deb.sh。这将构建Lazarus IDE Debian软件包 lazarus-project_2.0.6-0_armhf.deb。它将花费大约需要15分钟。
  24. 安装FPC源文件和Lazarus软件包: sudo dpkg -i fpc-src_3.0.4_armhf.deb lazarus-project_2.0.6-0_armhf.deb
  25. 保存*.deb到另一个位置,如果以后需要可重新安装或与朋友共享:请记住这是自由软件。
  26. cd, rm -rf ~/pascal ~/tmp

你现在终于可以享受你完整地工作了,完全更新到最新的 Lazarus 。在树莓派菜单中编程部分找到它。在第一次运行它时将显示一条标题 "Error in EditorMacroScript"信息;这个错误信息也出现在 Raspbian Lazarus 中,这个页面的原作者还不知道是什么原因。现在尝试安装一个软件包,例如:lazreport;它将工作!

想帮助FPC/Lazarus社区?在互联网上的某个地方托管生产的 .deb软件包,并在论坛上留言来让每个人都知道; 为每个发布版本都重做软件包。

贡献者和更改

  • 简体中文版本由 robsean 于 2020-04-08 创建。