[Gelöst] project1.lpr(20,1) Error: Error while linking

Für Fragen rund um die Ide und zum Debugger
Antworten
wodim
Beiträge: 12
Registriert: Fr 9. Aug 2013, 08:28

[Gelöst] project1.lpr(20,1) Error: Error while linking

Beitrag von wodim »

Hallo,

ja, ich weiß, das ist schon oft passiert - ich habe auch alle Lösungen probiert, die ich im Netz gefunden habe.

Gerade von hier alles frisch installiert (unter Debian jessie):

https://sourceforge.net/projects/lazaru ... s%201.6.4/

Und beim ersten "Start" - Versuch kommt die altbekannte Meldung. Hier die Ausgaben im Terminal:

Code: Alles auswählen

startlazarus
 is a file
TLazarusManager.Run starting /usr/share/lazarus/1.6.4/lazarus ...
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] PrimaryConfigPath="/home/hk/.lazarus"
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] SecondaryConfigPath="/etc/lazarus"
Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=x86_64-linux-gtk2 New=x86_64-linux-gtk2 FPC=True LCL=False
NOTE: Window with stalled focus found!, faking focus-out event
Hint: (lazarus) [TMainIDE.DoRunProject] INIT
Hint: [TFPCTargetConfigCache.NeedsUpdate] TargetOS="" TargetCPU="" Options="-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg" compiler file changed "/usr/bin/fpc" FileAge=1488055450 StoredAge=0
Hint: [TFPCTargetConfigCache.NeedsUpdate] /usr/bin/fpc TargetOS= TargetCPU= CompilerOptions=-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg ExtraOptions=-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg PATH=/home/hk/bin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/usr/local/games:/usr/games
Hint: (lazarus) [RunTool] /usr/bin/fpc "-iWTOTP" "-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg" "-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg"
Hint: (lazarus) [RunTool] /usr/bin/fpc "-va" "-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg" "-Fr/usr/share/lazarus/1.6.4/components/codetools/fpc.errore.msg" "compilertest.pas"
Hint: [TFPCTargetConfigCache.Update] has changed
Hint: (lazarus) Project needs building: SrcFile outdated Project
[TCompiler.Compile] CmdLine="/usr/bin/fpc  -MObjFPC -Scghi -Cg -O1 -g -gl -l -vewnhibq -Fi/home/hk/tmp/lib/x86_64-linux -Fl/opt/gnome/lib -Fu/usr/share/lazarus/1.6.4/lcl/units/x86_64-linux/gtk2 -Fu/usr/share/lazarus/1.6.4/lcl/units/x86_64-linux -Fu/usr/share/lazarus/1.6.4/components/lazutils/lib/x86_64-linux -Fu/usr/share/lazarus/1.6.4/packager/units/x86_64-linux -FU/home/hk/tmp/lib/x86_64-linux/ -FE/home/hk/tmp/ -dLCL -dLCLgtk2 /home/hk/tmp/project1.lpr"
Info: (lazarus) Execute Title="Projekt kompilieren, Ziel: /home/hk/tmp/project1"
Info: (lazarus) Working Directory="/home/hk/tmp/"
Info: (lazarus) Executable="/usr/bin/fpc"
Info: (lazarus) Param[0]="-MObjFPC"
Info: (lazarus) Param[1]="-Scghi"
Info: (lazarus) Param[2]="-Cg"
Info: (lazarus) Param[3]="-O1"
Info: (lazarus) Param[4]="-g"
Info: (lazarus) Param[5]="-gl"
Info: (lazarus) Param[6]="-l"
Info: (lazarus) Param[7]="-vewnhibq"
Info: (lazarus) Param[8]="-Fi/home/hk/tmp/lib/x86_64-linux"
Info: (lazarus) Param[9]="-Fl/opt/gnome/lib"
Info: (lazarus) Param[10]="-Fu/usr/share/lazarus/1.6.4/lcl/units/x86_64-linux/gtk2"
Info: (lazarus) Param[11]="-Fu/usr/share/lazarus/1.6.4/lcl/units/x86_64-linux"
Info: (lazarus) Param[12]="-Fu/usr/share/lazarus/1.6.4/components/lazutils/lib/x86_64-linux"
Info: (lazarus) Param[13]="-Fu/usr/share/lazarus/1.6.4/packager/units/x86_64-linux"
Info: (lazarus) Param[14]="-FU/home/hk/tmp/lib/x86_64-linux/"
Info: (lazarus) Param[15]="-FE/home/hk/tmp/"
Info: (lazarus) Param[16]="-dLCL"
Info: (lazarus) Param[17]="-dLCLgtk2"
Info: (lazarus) Param[18]="/home/hk/tmp/project1.lpr"
[TCompiler.Compile] end
Hint: (lazarus) [TMainIDE.DoBuildProject] compiler time in s: 3,92500008456409
Error: (lazarus) [TMainIDE.DoBuildProject] Compile failed


Was habe ich falsch gemacht? :roll:
Zuletzt geändert von wodim am Mo 2. Okt 2017, 14:44, insgesamt 1-mal geändert.

Soner
Beiträge: 623
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: project1.lpr(20,1) Error: Error while linking

Beitrag von Soner »

Das was du gepostet hast its nicht die Fehlermeldung. Die Fehlermeldung vom Kompilieren findest du in Nachrichtenfenster. (Menu>Ansicht>Nachrichten)

Ich glaube der Fehler ist dass du gtk-dev-Dateien nicht installiert hast. Du mußt libgtk2.0-dev installieren entweder über das Paketprogramm synaptic oder:

Code: Alles auswählen

>sudo apt-get install libgtk2.0-dev


libx11-dev, libc6-dev müssen auch installiert sein, normalerweise werden die mit libgtk2.0-dev mitinstalliert.

wodim
Beiträge: 12
Registriert: Fr 9. Aug 2013, 08:28

Re: project1.lpr(20,1) Error: Error while linking

Beitrag von wodim »

Soner hat geschrieben:Das was du gepostet hast its nicht die Fehlermeldung. Die Fehlermeldung vom Kompilieren findest du in Nachrichtenfenster. (Menu>Ansicht>Nachrichten)


Ja doch, die hab' ich doch als Threadtitel gepostet. :wink:

Soner hat geschrieben:Ich glaube der Fehler ist dass du gtk-dev-Dateien nicht installiert hast. Du mußt libgtk2.0-dev installieren entweder über das Paketprogramm synaptic oder:

Code: Alles auswählen

>sudo apt-get install libgtk2.0-dev


libx11-dev, libc6-dev müssen auch installiert sein, normalerweise werden die mit libgtk2.0-dev mitinstalliert.

Das ist eben das Problem: Die sind installiert. Deshalb habe ich mal die Konsolenausgabe gepostet, in der Hoffnung, dass man was daraus entnehmen kann. Ich habe den Verdacht, dass Irgendwas mit der Konfiguration nicht stimmt, aber was?

wodim
Beiträge: 12
Registriert: Fr 9. Aug 2013, 08:28

Re: project1.lpr(20,1) Error: Error while linking

Beitrag von wodim »

Ich habe also mal die generierte Zeile so im Terminal eingegeben:

Code: Alles auswählen

/usr/bin/fpc  -MObjFPC -Scghi -Cg -O1 -g -gl -l -vewnhibq -Fi/home/hk/tmp/lib/x86_64-linux -Fl/opt/gnome/lib -Fu/usr/share/lazarus/1.6.4/lcl/units/x86_64-linux/gtk2 -Fu/usr/share/lazarus/1.6.4/lcl/units/x86_64-linux -Fu/usr/share/lazarus/1.6.4/components/lazutils/lib/x86_64-linux -Fu/usr/share/lazarus/1.6.4/packager/units/x86_64-linux -FU/home/hk/tmp/lib/x86_64-linux/ -FE/home/hk/tmp/ -dLCL -dLCLgtk2 /home/hk/tmp/project1.lpr

Da kommt Folgendes:

Code: Alles auswählen

Hint: (11030) Start of reading config file /etc/fpc.cfg
Hint: (11031) End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 3.0.2 [2017/02/25] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
(1002) Target OS: Linux for x86-64
(3104) Compiling /home/hk/tmp/project1.lpr
(9022) Compiling resource /home/hk/tmp/lib/x86_64-linux/project1.or
(9015) Linking /home/hk/tmp/project1
[...]
/usr/bin/ld: warning: /home/hk/tmp/link.res contains output sections; did you forget -T?
/usr/bin/ld: /usr/lib/fpc/3.0.2/units/x86_64-linux/rtl/cprt0.o: unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: Bad value
/home/hk/tmp/project1.lpr(20,1) Error: (9013) Error while linking
/home/hk/tmp/project1.lpr(20,1) Fatal: (10026) There were 1 errors compiling module, stopping
Fatal: (1018) Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

Wer weiß da weiter?

wodim
Beiträge: 12
Registriert: Fr 9. Aug 2013, 08:28

Re: project1.lpr(20,1) Error: Error while linking

Beitrag von wodim »

wodim hat geschrieben:Ich habe den Verdacht, dass Irgendwas mit der Konfiguration nicht stimmt, aber was?

Hm, so sieht die /etc/fpc.cfg aus:

Code: Alles auswählen

#
# Config file generated by fpcmkcfg on 1-10-17 - 17:27:31
# Example fpc.cfg for Free Pascal Compiler
#
 
# ----------------------
# Defines (preprocessor)
# ----------------------
 
#
# nested #IFNDEF, #IFDEF, #ENDIF, #ELSE, #DEFINE, #UNDEF are allowed
#
# -d is the same as #DEFINE
# -u is the same as #UNDEF
#
 
#
# Some examples (for switches see below, and the -? helppages)
#
# Try compiling with the -dRELEASE or -dDEBUG on the commandline
#
 
# For a release compile with optimizes and strip debuginfo
#IFDEF RELEASE
  -O2
  -Xs
  #WRITE Compiling Release Version
#ENDIF
 
# For a debug version compile with debuginfo and all codegeneration checks on
#IFDEF DEBUG
  -gl
  -Crtoi
  #WRITE Compiling Debug Version
#ENDIF
 
# assembling
#ifdef darwin
# use pipes instead of temporary files for assembling
-ap
# path to Xcode 4.3+ utilities (no problem if it doesn't exist)
-FD/Applications/Xcode.app/Contents/Developer/usr/bin
#endif
 
# ----------------
# Parsing switches
# ----------------
 
# Pascal language mode
#      -Mfpc      free pascal dialect (default)
#      -Mobjfpc   switch some Delphi 2 extensions on
#      -Mdelphi   tries to be Delphi compatible
#      -Mtp       tries to be TP/BP 7.0 compatible
#      -Mgpc      tries to be gpc compatible
#      -Mmacpas   tries to be compatible to the macintosh pascal dialects
#
# Turn on Object Pascal extensions by default
#-Mobjfpc
 
# Assembler reader mode
#      -Rdefault  use default assembler
#      -Ratt      read AT&T style assembler
#      -Rintel    read Intel style assembler
#
# All assembler blocks are AT&T styled by default
#-Ratt
 
# Semantic checking
#      -S2        same as -Mobjfpc
#      -Sc        supports operators like C (*=,+=,/= and -=)
#      -Sa        include assertion code.
#      -Sd        same as -Mdelphi
#      -Se<x>     error options. <x> is a combination of the following:
#         <n> : compiler stops after <n> errors (default is 1)
#         w   : compiler stops also after warnings
#         n   : compiler stops also after notes
#         h   : compiler stops also after hints
#      -Sg        allow LABEL and GOTO
#      -Sh        Use ansistrings
#      -Si        support C++ styled INLINE
#      -Sk        load fpcylix unit
#      -SI<x>     set interface style to <x>
#         -SIcom    COM compatible interface (default)
#         -SIcorba  CORBA compatible interface
#      -Sm        support macros like C (global)
#      -So        same as -Mtp
#      -Sp        same as -Mgpc
#      -Ss        constructor name must be init (destructor must be done)
#      -Sx        enable exception keywords (default in Delphi/ObjFPC modes)
#
# Allow goto, inline, C-operators, C-vars
-Sgic
 
# ---------------
# Code generation
# ---------------
 
# Uncomment the next line if you always want static/dynamic units by default
# (can be overruled with -CD, -CS at the commandline)
#-CS
#-CD
 
# Set the default heapsize to 8Mb
#-Ch8000000
 
# Set default codegeneration checks (iocheck, overflow, range, stack)
#-Ci
#-Co
#-Cr
#-Ct
 
# Optimizer switches
# -Os        generate smaller code
# -Oa=N      set alignment to N
# -O1        level 1 optimizations (quick optimizations, debuggable)
# -O2        level 2 optimizations (-O1 + optimizations which make debugging more difficult)
# -O3        level 3 optimizations (-O2 + optimizations which also may make the program slower rather than faster)
# -Oo<x>     switch on optimalization x. See fpc -i for possible values
# -OoNO<x>   switch off optimalization x. See fpc -i for possible values
# -Op<x>     set target cpu for optimizing, see fpc -i for possible values
 
#ifdef darwin
#ifdef cpui386
-Cppentiumm
-Oppentiumm
#endif
#endif
 
# -----------------------
# Set Filenames and Paths
# -----------------------
 
# Both slashes and backslashes are allowed in paths
 
# path to the messagefile, not necessary anymore but can be used to override
# the default language
#-Fr/usr/lib/fpc/$fpcversion/msg/errore.msg
#-Fr/usr/lib/fpc/$fpcversion/msg/errorn.msg
#-Fr/usr/lib/fpc/$fpcversion/msg/errores.msg
#-Fr/usr/lib/fpc/$fpcversion/msg/errord.msg
#-Fr/usr/lib/fpc/$fpcversion/msg/errorr.msg
 
# search path for unicode binary files (FPC 2.x does not know this switch)
#ifndef VER2
-FM/usr/lib/fpc/../../share/fpc/$fpcversion/unicode/
#endif
 
# searchpath for units and other system dependent things
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
 
#ifdef cpui8086
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/$fpcsubarch-$fpcmemorymodel
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl
#endif
 
#IFDEF FPCAPACHE_1_3
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/httpd13/
#ELSE
#IFDEF FPCAPACHE_2_0
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/httpd20
#ELSE
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/httpd22
#ENDIF
#ENDIF
 
# searchpath for fppkg user-specific packages
-Fu~/.fppkg/lib/fpc/$fpcversion/units/$FPCTARGET/*
 
# path to the gcclib
#ifdef cpui386
-Fl/usr/lib/gcc/x86_64-linux-gnu/4.9
#endif
#ifdef cpux86_64
-Fl/usr/lib/gcc/x86_64-linux-gnu/4.9
#endif
 
# searchpath for libraries
#-Fl/usr/lib/fpc/$fpcversion/lib
#-Fl/lib;/usr/lib
-Fl/usr/lib/fpc/$fpcversion/lib/$FPCTARGET
 
# searchpath for tools
-FD/usr/lib/fpc/$fpcversion/bin/$FPCTARGET
 
#IFNDEF CPUI386
#IFNDEF CPUAMD64
#DEFINE NEEDCROSSBINUTILS
#ENDIF
#ENDIF
 
#IFNDEF Linux
#DEFINE NEEDCROSSBINUTILS
#ENDIF
 
# never need cross-prefix when targeting the JVM
# (no native compiler, always cross-compiling)
#ifdef cpujvm
#undef NEEDCROSSBINUTILS
#endif
 
# for android cross-prefix is set by compiler
#ifdef android
#undef NEEDCROSSBINUTILS
#endif
 
# never need cross-prefix when targeting the i8086
# (no native compiler, always cross-compiling)
#ifdef cpui8086
#undef NEEDCROSSBINUTILS
#endif
 
# never need cross-prefix when targeting the i8086
# (no native compiler, always cross-compiling)
#ifdef cpujvm
#undef NEEDCROSSBINUTILS
#endif
 
# binutils prefix for cross compiling
#IFDEF FPC_CROSSCOMPILING
#IFDEF NEEDCROSSBINUTILS
  -XP$FPCTARGET-
#ENDIF
#ENDIF
 
 
# -------------
# Linking
# -------------
 
# generate always debugging information for GDB (slows down the compiling
# process)
#      -gc        generate checks for pointers
#      -gd        use dbx
#      -gg        use gsym
#      -gh        use heap trace unit (for memory leak debugging)
#      -gl        use line info unit to show more info for backtraces
#      -gv        generates programs tracable with valgrind
#      -gw        generate dwarf debugging info
#
# Enable debuginfo and use the line info unit by default
#-gl
 
# always pass an option to the linker
#-k-s
 
# Always strip debuginfo from the executable
-Xs
 
# Always use smartlinking on i8086, because the system unit exceeds the 64kb
# code limit
#ifdef cpui8086
-CX
-XX
#endif
 
 
# -------------
# Miscellaneous
# -------------
 
# Write always a nice FPC logo ;)
-l
 
# Verbosity
#      e : Show errors (default)       d : Show debug info
#      w : Show warnings               u : Show unit info
#      n : Show notes                  t : Show tried/used files
#      h : Show hints                  s : Show time stamps
#      i : Show general info           q : Show message numbers
#      l : Show linenumbers            c : Show conditionals
#      a : Show everything             0 : Show nothing (except errors)
#      b : Write file names messages   r : Rhide/GCC compatibility mode
#          with full path              x : Executable info (Win32 only)
#      v : write fpcdebug.txt with     p : Write tree.log with parse tree
#          lots of debugging info
#
# Display Info, Warnings and Notes
-viwn
# If you don't want so much verbosity use
#-vw

wodim
Beiträge: 12
Registriert: Fr 9. Aug 2013, 08:28

Re: project1.lpr(20,1) Error: Error while linking

Beitrag von wodim »

Ok, ich hab' zurückgeschraubt auf lazarus 1.6.2 / fpc 3.0.0, damit läuft's.

Antworten