我刚刚安装了 FPC 3.2.0(在 Linux Mint 19.3 上)并尝试使用 FPC IDE。我从
bin
安装子文件夹启动IDE作为./fp
,在IDE中编写了一个最简单的程序
program hello;
begin
writeln('hello');
end.
将程序保存为
hello.pas
,当我编译它时,我得到了
(3,1) Fatal: Can't find unit system used by hello
(0) Fatal: Compilation aborted
这很奇怪,因为
system
是编译器的单位,而不是用户的单位。
我尝试用谷歌搜索这个问题,在不同的论坛上找到了几篇帖子,其中一个问题可以追溯到 2007 年,并且没有问题得到解答。
哪里有办法解决这个问题,或者FPC IDE已经死了大约15年了?
在选项->目录->单元目录中检查单元目录。
包配置应该放一行像
/usr/lib/fpc/$FPCVERSION/units/$FPCTARGET/*
美元值是内置的(分别是 3.2.0 和 i386-linux 或 x86_64-linux)。请验证带有预建 .ppu .o 的目录是否存在。
尝试修复您的 FPC 安装,或者您可以通过调用 fpcmkcfg 手动修复它
fpcmkcfg -d“basepath =路径/到/fpc/3.3”-o路径/到/fpc.cfg
例如,如果编译器位于 /usr/local/bin 中,它将查找 /usr/local/etc.
在 Ubuntu 20.04 上也有同样的问题。为了解决这个问题,我必须在项目文件夹中创建文件 fp.cfg,其中包含以下内容:
-Fu/usr/lib/x86_64-linux-gnu/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/x86_64-linux-gnu/fpc/$fpcversion/units/$fpctarget/*
如果这不起作用,则意味着您系统上的单元路径不同。你可以使用类似的东西
dpkg -L fp-units-base-3.0.4 | grep .ppu
找出单位实际存储的位置。将 3.0.4 替换为您实际的 Free Pascal 版本。如果您不知道确切的版本,请使用
sudo apt install apt-show-versions
apt-show-versions fpc
它会显示类似的内容
fpc:all/focal 3.0.4+dfsg-23 uptodate
3.0.4是您需要的版本号。
获取所需路径的另一种方法是运行此命令:
cat /etc/fpc.cfg | grep -- -Fu | head -2
所以你可以直接跑
cat /etc/fpc.cfg | grep -- -Fu | head -2 > fp.cfg
在您的项目文件夹中解决问题。