Program Pvmtesti; // yksinkertainen käännöstesti (Free Pascal) uses Dateutils; var unix : int64; begin unix:=DateTimeToUnix(Now); writeln('Unix-aikaleima: ',unix); end.
Kun yritän kääntää ylläolevaa esimerkkiohjelmaa niin konsoliin tulee seuraavanlainen virheilmoitus:
Free Pascal Compiler version 3.0.4 [2017/10/06] for i386
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling .\pvmtesti.pas
PPU Loading C:\FPC\3.0.4\units\i386-win32\rtl-objpas\dateutils.ppu
PPU Source: dateutils.pp not available
PPU Source: dateutil.inc not available
Recompiling dateutils, checksum changed for Math
pvmtesti.pas(5,6) Fatal: Can't find unit dateutils used by Pvmtesti
Fatal: Compilation aborted
Error: c:\fpc\3.0.4\bin\i386-win32\ppc386.exe returned an error exitcode
Käyttöjärjestelmänä on 64-bittinen Windows 10 Home.
C:\FPC\3.0.4\units\i386-win32\rtl-objpas -hakemistosta löytyvät dateutils.ppu ja dateutils.o -tiedostot.
Free Pascal-kielestä on asennettuna seuraavat versiot: fpc-3.0.4.i386-win32.exe, fpc-3.0.4.i386-win32.cross.x86_64-win64.exe ja fpc-3.0.4.i386-win32.cross.i8086-msdos.exe. Tosin tuota viimeistä ei tule varmaankaan käytettyä.
Unit not found - How to find units - Free Pascal wiki -kohta on luettu.
FPC installation
You named one of your units like one of the FPC units.
--> ei ole nimetty: jokaisella minun tekemälläni unitilla on My-prefiksi: esim. MyStrings
Wrong fpc.cfg. $HOME/.fpc.cfg instead of /etc/fpc.cfg. Find out with -vut.
--> ohjelmointialustana on Windows 10 Home
Missing or wrong search path in fpc.cfg. Find out with -vut.
--> Ei ole ollut aikaisemminkaan mitään polkua ja ohjelma on kääntynyt (21.3.2019), mutta nyt ei enää käänny jos ohjelmassa on Dateutils-unit. En ole päivittänyt FPC:ia.
Cross compiling: Forgot to install the cross compiled FPC ppus. Find out with -vut.
--> ?
Broken FPC installation. Remove FPC directory manually and install again.
--> FPC on uninstalloitu ohjauspaneelin kautta ja hakemisto on sen jälkeen poistettu käsin.
Compiler symlink points to wrong compiler.
--> Käytän Windowsin komentoriviä ja käännän ohjelmat fpc.exe-ohjelmalla.
FPCDIR environment variable is set
--> Ei ole asetettu.
You named one of your include files like one of the FPC include files and your FPC installation was not compiled with -Ur.
--> Ei ole nimetty. Ohjelmointialustana on Windows 10 Home eli FPC-asennusta ei ole käännetty millään parametreilla. Asennettu suoraan exe-tiedostoista.
fpc_log.txt '-vut'-parametreilla.
Ongelman ydin käy ilmi tästä ilmoituksesta: ”Recompiling dateutils, checksum changed for Math”. Lokitiedostostasi näkyy tämän syy:
717: PPU Loading E:\Omat\OHJELMAT\OHJELMAT\OMAT\math.ppu 718: (MATH) PPU Name: E:\Omat\OHJELMAT\OHJELMAT\OMAT\math.ppu 719: (MATH) PPU Time: 2019/06/21 12:52:24 ... 726: (MATH) PPU Source: math.pas not found
Olet siis luonut oman math.ppu-tiedoston. Dateutils käyttää Math-kirjastoa mutta ohjautuukin sinun tiedostoosi. Kääntäjä tunnistaa, että tiedosto on eri kuin Dateutils odottaa, joten Dateutils pitäisi kääntää uudestaan tällä uudella versiolla. Kuitenkin math.pas puuttuu, joten uusi käännös ei onnistu.
Eli ongelma on sittenkin listalla tässä: ”You named one of your units like one of the FPC units.”
Esimerkkikoodistasi puuttuu Sysutils, ei näytä kääntyvän ilman.
lainaus:
FPC-asennusta ei ole käännetty millään parametreilla. Asennettu suoraan exe-tiedostoista.
Kyllä sen on joku kääntänyt, jotta siitä on voitu tehdä asennuspaketti.
Metabolix kirjoitti:
Ongelman ydin käy ilmi tästä ilmoituksesta: ”Recompiling dateutils, checksum changed for Math”. Lokitiedostostasi näkyy tämän syy:
717: PPU Loading E:\Omat\OHJELMAT\OHJELMAT\OMAT\math.ppu 718: (MATH) PPU Name: E:\Omat\OHJELMAT\OHJELMAT\OMAT\math.ppu 719: (MATH) PPU Time: 2019/06/21 12:52:24 ... 726: (MATH) PPU Source: math.pas not foundOlet siis luonut oman math.ppu-tiedoston. Dateutils käyttää Math-kirjastoa mutta ohjautuukin sinun tiedostoosi. Kääntäjä tunnistaa, että tiedosto on eri kuin Dateutils odottaa, joten Dateutils pitäisi kääntää uudestaan tällä uudella versiolla. Kuitenkin math.pas puuttuu, joten uusi käännös ei onnistu.
Eli ongelma on sittenkin listalla tässä: ”You named one of your units like one of the FPC units.”
Niinpäs olikin. Yritin etsiä itsepintaisesti tuota omaa math.ppu-tiedostoa väärästä hakemistosta.
Metabolix kirjoitti:
Esimerkkikoodistasi puuttuu Sysutils, ei näytä kääntyvän ilman.
Kun en päässyt eteenpäin kääntämisessä niin en tiennyt.
lainaus:
FPC-asennusta ei ole käännetty millään parametreilla. Asennettu suoraan exe-tiedostoista.
Metabolix kirjoitti:
Kyllä sen on joku kääntänyt, jotta siitä on voitu tehdä asennuspaketti.
Tarkoitin siis sitä että minä en ole kääntänyt tuota asennustiedostoa.
Mutta nyt kääntyi kun nimesin sen oman unit-tiedoston uudestaan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.