fpc:PPU 来源:[unit].pas 不可用
fpc: PPU Source: [unit].pas not available
我正在尝试使用 Free Pascal 编译器版本 3.0.4 [2018/10/02] 为 x86_64 在 macOs Mojave 上编译以下最小的 FreeVision 程序。
Program VeryShort;
Uses App;
Var MyProgram: TApplication;
Begin
MyProgram.Init;
MyProgram.Run;
MyProgram.Done;
End.
但是,我收到以下错误消息:
$ fpc veryshort.p
Free Pascal Compiler version 3.0.4 [2018/10/02] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling veryshort.p
PPU Loading /usr/local/Cellar/fpc/3.0.4_1/lib/fpc/3.0.4/units/x86_64-darwin/fv/app.ppu
PPU Source: app.pas not available
PPU Source: platform.inc not available
Recompiling App, checksum changed for Menus
veryshort.p(2,6) Fatal: Can't find unit App used by VeryShort
Fatal: Compilation aborted
Error: /usr/local/bin/ppcx64 returned an error exitcode
单元文件app.ppu
被编译器找到了,所以我不明白为什么要重新编译它?
使用编译器的 -vut
选项,我发现 fpc
选择了一个不正确的单元作为依赖项:在两个位置有一个 menus.ppu
单元:
lib/fpc/3.0.4/units/x86_64-darwin/fv/menus.ppu
lib/fpc/3.0.4/units/x86_64-darwin/univint/Menus.ppu
.
不幸的是,univint
在fv
之前的单元搜索路径上,因此拾取了错误的单元。
我通过在命令行上明确指定 FreeVision 的路径解决了这个问题:这样,FreeVision 单位是首选,但仍然可以找到所需的 univint
单位:
$ fpc -Fu/usr/local/lib/fpc/3.0.4/units/x86_64-darwin/fv veryshort.p
请注意,-Fu
和路径之间必须 而不是 是 space。路径名可能需要适配fpc版本、目标架构和操作系统。
我正在尝试使用 Free Pascal 编译器版本 3.0.4 [2018/10/02] 为 x86_64 在 macOs Mojave 上编译以下最小的 FreeVision 程序。
Program VeryShort;
Uses App;
Var MyProgram: TApplication;
Begin
MyProgram.Init;
MyProgram.Run;
MyProgram.Done;
End.
但是,我收到以下错误消息:
$ fpc veryshort.p
Free Pascal Compiler version 3.0.4 [2018/10/02] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Darwin for x86_64
Compiling veryshort.p
PPU Loading /usr/local/Cellar/fpc/3.0.4_1/lib/fpc/3.0.4/units/x86_64-darwin/fv/app.ppu
PPU Source: app.pas not available
PPU Source: platform.inc not available
Recompiling App, checksum changed for Menus
veryshort.p(2,6) Fatal: Can't find unit App used by VeryShort
Fatal: Compilation aborted
Error: /usr/local/bin/ppcx64 returned an error exitcode
单元文件app.ppu
被编译器找到了,所以我不明白为什么要重新编译它?
使用编译器的 -vut
选项,我发现 fpc
选择了一个不正确的单元作为依赖项:在两个位置有一个 menus.ppu
单元:
lib/fpc/3.0.4/units/x86_64-darwin/fv/menus.ppu
lib/fpc/3.0.4/units/x86_64-darwin/univint/Menus.ppu
.
不幸的是,univint
在fv
之前的单元搜索路径上,因此拾取了错误的单元。
我通过在命令行上明确指定 FreeVision 的路径解决了这个问题:这样,FreeVision 单位是首选,但仍然可以找到所需的 univint
单位:
$ fpc -Fu/usr/local/lib/fpc/3.0.4/units/x86_64-darwin/fv veryshort.p
请注意,-Fu
和路径之间必须 而不是 是 space。路径名可能需要适配fpc版本、目标架构和操作系统。