我刚刚安装了FPC3.2.0(在LinuxMint19.3上)并尝试使用FPC。我从bin安装子文件夹启动了./fp,用./fp编写了一个最简单的程序
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年,none的问题也得到了回答。
解决这个问题的方法或者FPC已经死了15年了吗?
发布于 2020-07-14 14:46:04
检查选项->目录->单元目录中的单元目录。
包配置应该放置一行如下
/usr/lib/fpc/$FPCVERSION/units/$FPCTARGET/*
美元值是内置的(分别为3.2.0和i 386-linux或x86_64-linux)。请验证使用预构建的.ppu .o的目录是否存在。
发布于 2020-07-06 23:32:03
尝试修复FPC的安装,或者通过调用fpcmkcfg手动修复它。
fpcmkcfg -d "basepath=path/to/fpc/3.3“-o path/to/fpc.cfg
例如,如果编译器在/usr/local/bin中,它将在/usr/local/etc中查找。
发布于 2020-11-01 21:10:04
在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替换为实际的免费Pascal版本。如果您不知道确切的版本,请使用
sudo apt install apt-show-versions
apt-show-versions fpc它会显示出
fpc:all/focal 3.0.4+dfsg-23 uptodate3.0.4是您需要的版本号。
获得所需路径的另一种方法是运行以下命令:
cat /etc/fpc.cfg | grep -- -Fu | head -2所以你可以直接跑
cat /etc/fpc.cfg | grep -- -Fu | head -2 > fp.cfg在您的项目的文件夹中解决问题。
https://stackoverflow.com/questions/62730173
复制相似问题