Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2014-03

Error compile library on Linux.

17 messages · 5 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Fred van Stappen

Hello.

After successfully translate a useful unit into a universal library, i want to do the same with something bigger.

I have compile that unit into a Windows library.
Perfect, it compile and works.

But when i try to compile it on Linux a get that error message, even if i compile it with -fPIC parameter :

/usr/bin/ld: /home/fred/mylib/lib/x86_64-linux/thefile.o: réadressage de R_X86_64_32S en vertu de « .bss.n_u_$thefile_$$_usedfirstmessage » cannot be used when creation of shared object, recompile with -fPIC /home/fred/fmylib/lib/x86_64-linux/thefile.o: error adding symbols: Bad value

What is wrong ?

Many thanks.

Reply by email

Fabio Luis Girardi
to Fred van Stappen

Same problem here when I try to compile a form on a library... I know that Forms on lib don't work yet because of other problems, not because linking problems.

I'm using Lazarus 1.3 and FPC 2.7.1 x64.

2014-03-11 11:15 GMT-03:00 Fred van Stappen :

Show quoted text 27 lines
Hello. After successfully translate a useful unit into a universal library, i want to do the same with something bigger. I have compile that unit into a Windows library. Perfect, it compile and works. But when i try to compile it on Linux a get that error message, even if i compile it with -fPIC parameter : */usr/bin/ld: /home/fred/mylib/lib/x86_64-linux/thefile.o: réadressage de R_X86_64_32S en vertu de « .bss.n_u_$thefile_$$_usedfirstmessage » cannot be used when creation of shared object, recompile with -fPIC /home/fred/fmylib/lib/x86_64-linux/thefile.o: error adding symbols: Bad value *What is wrong ? Many thanks. _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
The best regards, Fabio Luis Girardi PascalSCADA Project http://sourceforge.net/projects/pascalscada http://www.pascalscada.com

Reply by email

Fred van Stappen
to Fred van Stappen: Hello. After successfully translate a useful unit into a universal library, i want to do…

Hello.

Here are some news from the front :

The fpc Library :

TheRevolutionaryLibrary library;
uses
TheBigUnit;
begin
end.

fpc compiler parameter => -fPIC.

=> Windows 32 bit => Compiles and works more than perfect. => Windows 64 bit => Compiles and works more than perfect.

=> Linux 32 bit => Compiles and works more than perfect. => Linux 64 bit => Not Compile and that error message:

/usr/bin/ld: /home/fred/mylib/lib/x86_64-linux/thefile.o: réadressage de R_X86_64_32S en vertu de « .bss.n_u_$thefile_$$_usedfirstmessage » cannot be used when creation of shared object, recompile with -fPIC

/home/fred/fmylib/lib/x86_64-linux/thefile.o: error adding symbols: Bad value

Who is the enemy ?

Many thanks.

PS : The library does not use any TForm nor any LCL units...

Fred.

Reply by email

Fred van Stappen
to Fred van Stappen
/usr/bin/ld: /home/fred/mylib/lib/x86_64-linux/thefile.o: réadressage de R_X86_64_32S en vertu de « .bss.n_u_$thefile_$$_usedfirstmessage » cannot be used when creation of shared object, recompile with -fPIC/home>> >/fred/fmylib/lib/x86_64-linux/thefile.o: error adding symbols: Bad value

Hello.

Cftr compliling a library on Linux 64 bit...( ok for Linux 32 bit, ok for Windows 32/64 bit) Please, what is wrong, what must i change, where is the problem ?

Thanks

Reply by email

Jonas Maebe
to Fred van Stappen
Fred van Stappen wrote 12 lines
> > /usr/bin/ld: /home/fred/mylib/lib/x86_64-linux/thefile.o: > réadressage de > R_X86_64_32S en vertu de « .bss.n_u_$thefile_$$_usedfirstmessage » > cannot > be used when creation of shared object, recompile with -fPIC/ > home>> >/fred/fmylib/lib/x86_64-linux/thefile.o: error adding > symbols: Bad value Cftr compliling a library on Linux 64 bit...( ok for Linux 32 bit, ok for Windows 32/64 bit) Please, what is wrong, what must i change, where is the problem ?

We have several tests for libraries in our testsuite and they work fine for Linux/x86-64. It's quite possible that there is nevertheless a bug, but you will have to provide the source code required to reproduce it and compilation instructions, otherwise there is nothing we can do (as always).

Jonas

Reply by email

Fred van Stappen
to Jonas Maebe
but you will have to provide the source code required to reproduce it and compilation instructions, otherwise there is nothing we can do (as always).> Jonas

Hum, ok (but you promise not to tell, it is still a secret...) ;-)

The project-units :

The code of the library :

> library fpGUI; > uses > fpg_main; => error while compiling on Linux 64 bit. > begin>> end.

Thanks.

Fred.

PS : Tested with Python and fpGUI library on Windows 32/64 => It works !

Reply by email

Fred van Stappen
to Jonas Maebe: We have several tests for libraries in our testsuite and they work fine for Linux/x86-64.…
It's quite possible that there is nevertheless a bug, but you will have to provide the source code required to reproduce it and compilation instructions, otherwise there is nothing we can do (as always).

Hum, not too much answer here... ;-(

Re-resumed :
Units/Project => https://github.com/graemeg/fpGUI/tree/develop

Download it by Clicking on "Download ZIP".

Then in /fpGUI/src/corelib/

Try to compile that simple library with Linux 64 bit :

> library fpGUI; > uses > fpg_main; => error while compiling on Linux 64 bit. > begin>> end.

Compiler parameters (need parh of fpGUI too) :
-MObjFPC -Scghi -CX -Os1 -Xs -XX -vewnhi -fPIC -Fu

Many thanks.

Fred

Reply by email

Jonas Maebe
to Fred van Stappen
Fred van Stappen wrote 6 lines
> It's quite possible that there is nevertheless a bug, but you will have to > provide the source code required to reproduce it and compilation > instructions, otherwise there is nothing we can do (as always). Hum, not too much answer here... ;-(

Indeed, not all bug reports are followed up within two days. Please file a bug so it doesn't get forgotten. And if
you or anyone else has a smaller example that demonstrates the problem, that can also help with getting it fixed more quickly.

Jonas

Reply by email

Fred van Stappen
to Jonas Maebe: Indeed, not all bug reports are followed up within two days. Please file a bug so it…

Yep, many thanks for the attention you give :
=> http://bugs.freepascal.org/view.php?id=25901

Hum, Marco explained :

> Works fine for me if I compile

everything with those parameters

> (and -trunk) I assume you compiled with

the build.sh and then

> didn't clean up properly when you started adding

parameters,

> thus leaving units compiled without the pic params.

May i ask what parameters you have used, i cannot do it compile ? I will then compile via terminal.
Many thanks.

Fred

Reply by email

Fred van Stappen
to Fred van Stappen
> Works fine for me if I compile

everything with those parameters

> (and -trunk) I assume you compiled with

the build.sh and then

> didn't clean up properly when you started adding

parameters,

> thus leaving units compiled without the pic params.

Hello.
I have re-created a new fpc.cfg and now...
it compiles and works perfectly in Linux 64 with fpc 2.6.2 and 2.7.1 !

Fantastique...

Here, demo of fpGUI library with Python (Windows 32 and Linux 64)

=> All is working, (even Style Manager, onClick, form-state, etc,...). You only need to have Python installed.
Run the Python script and see...

=> https://sites.google.com/site/biotray/fpGUIlib_py.zip PS : Many thanks to help and, once again, viva fpc ;-) PS2 : What a marvelous prove, with fpGUI library, that fpc is the Master. PS3 : Im very, very, very happy. Tetra thanks.

Fred

Reply by email

Fabio Luis Girardi
to Fred van Stappen

You recompiled the FPC? Or simple change of fpc.cfg options solves your problem?

2014-03-22 21:55 GMT-03:00 Fred van Stappen :

Show quoted text 32 lines
>> Works fine for me if I compile everything with those parameters >> (and -trunk) I assume you compiled with the build.sh and then >> didn't clean up properly when you started adding parameters, >> thus leaving units compiled without the pic params. Hello. I have re-created a new fpc.cfg and now... it compiles and works perfectly in Linux 64 with fpc 2.6.2 and 2.7.1 ! Fantastique... Here, demo of fpGUI library with Python (Windows 32 and Linux 64) => All is working, (even Style Manager, onClick, form-state, etc,...). You only need to have Python installed. Run the Python script and see... => https://sites.google.com/site/biotray/fpGUIlib_py.zip PS : Many thanks to help and, once again, viva fpc ;-) PS2 : What a marvelous prove, with fpGUI library, that fpc is the Master. PS3 : Im very, very, very happy. Tetra thanks. Fred _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
The best regards, Fabio Luis Girardi PascalSCADA Project http://sourceforge.net/projects/pascalscada http://www.pascalscada.com

Reply by email

fredvs
to Fabio Luis Girardi
> You recompiled the FPC? Or simple change of fpc.cfg options solves your

problem?

Oops, sorry for the delay.

I only change fpc.cfg options and it solves the problem...

Hum, im really sorry but i do not know what changes do the trick. (i did not save the old fpc.cfg-not-working, so, i cannot compare).

Fred

-----
Many thanks ;-)

View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Error-compile-library-on-Linux-tp5718562p5718763.html Sent from the Free Pascal - General mailing list .

Reply by email

fredvs
to Fred van Stappen: Hello. After successfully translate a useful unit into a universal library, i want to do…

@ Fabio Luis Girardi :

Here my working *fpc.cfg*
_________________________________________________________ #
# Config file generated by fpcmkcfg on 5-3-14 - 21:58:27 # 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

# 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 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.8
#endif
#ifdef cpux86_64
-Fl/usr/lib/gcc/x86_64-linux-gnu/4.8
#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

# 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

# -------------
# 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
#include /etc/fpc-fpg.cfg
_______________________________________________________

*Here my fpc-fpg.cfg ( see end of fpc.cfg, i added it for fpGUI ) :*

# Begin fpGUI-block
# search-path for fpGUI units and includes
-Fu/home/fred/fpGUI-develop/src
-Fi/home/fred/fpGUI-develop/src
-Fu/home/fred/fpGUI-develop/src/corelib
-Fu/home/fred/fpGUI-develop/src/corelib/x11
-Fi/home/fred/fpGUI-develop/src/corelib/x11
-Fu/home/fred/fpGUI-develop/src/corelib/render/software -Fu/home/fred/fpGUI-develop/src/gui
-Fu/home/fred/fpGUI-develop/src/gui/db
-Fu/home/fred/fpGUI-develop/src/reportengine
# object pascal dialect and compil options
-MObjFPC
-Schi
-vewnhi
-Xs
-XX
-fPIC
# End fpGUI-blockg :

# Begin fpGUI-block
# search-path for fpGUI units and includes
-Fu/home/fred/fpGUI-develop/src
-Fi/home/fred/fpGUI-develop/src
-Fu/home/fred/fpGUI-develop/src/corelib
-Fu/home/fred/fpGUI-develop/src/corelib/x11
-Fi/home/fred/fpGUI-develop/src/corelib/x11
-Fu/home/fred/fpGUI-develop/src/corelib/render/software -Fu/home/fred/fpGUI-develop/src/gui
-Fu/home/fred/fpGUI-develop/src/gui/db
-Fu/home/fred/fpGUI-develop/src/reportengine
# object pascal dialect and compil options
-MObjFPC
-Schi
-vewnhi
-Xs
-XX
-fPIC
# End fpGUI-block
_________________________________________________

*And here the compiler parameters used :* (for fpGUI library)

-MObjFPC -Scghi -CX -Xs -XX -vewnhi -Fi/home/fred/fpGUIlib/src/units -Fu/home/fred/fpGUI-develop/lib/x86_64-linux
-Fu/usr/share/lazarus/1.2.0/packager/units/x86_64-linux -Fu/home/fred/fpGUIlib/src/ -FU/home/fred/fpGUIlib/src/units/ -olibfpgui.so

_________________________________________________

-----
Many thanks ;-)

View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Error-compile-library-on-Linux-tp5718562p5718765.html Sent from the Free Pascal - General mailing list .

Reply by email

Fabio Luis Girardi
to fredvs

No problem... what's your fpc version? I'll compare with the right version of FPC here.

2014-03-26 14:17 GMT-03:00 fredvs :

Show quoted text 325 lines
@ Fabio Luis Girardi : Here my working *fpc.cfg* _________________________________________________________ # # Config file generated by fpcmkcfg on 5-3-14 - 21:58:27 # 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 # 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 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.8 #endif #ifdef cpux86_64 -Fl/usr/lib/gcc/x86_64-linux-gnu/4.8 #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 # 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 # ------------- # 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 #include /etc/fpc-fpg.cfg _______________________________________________________ *Here my fpc-fpg.cfg ( see end of fpc.cfg, i added it for fpGUI ) :* # Begin fpGUI-block # search-path for fpGUI units and includes -Fu/home/fred/fpGUI-develop/src -Fi/home/fred/fpGUI-develop/src -Fu/home/fred/fpGUI-develop/src/corelib -Fu/home/fred/fpGUI-develop/src/corelib/x11 -Fi/home/fred/fpGUI-develop/src/corelib/x11 -Fu/home/fred/fpGUI-develop/src/corelib/render/software -Fu/home/fred/fpGUI-develop/src/gui -Fu/home/fred/fpGUI-develop/src/gui/db -Fu/home/fred/fpGUI-develop/src/reportengine # object pascal dialect and compil options -MObjFPC -Schi -vewnhi -Xs -XX -fPIC # End fpGUI-blockg : # Begin fpGUI-block # search-path for fpGUI units and includes -Fu/home/fred/fpGUI-develop/src -Fi/home/fred/fpGUI-develop/src -Fu/home/fred/fpGUI-develop/src/corelib -Fu/home/fred/fpGUI-develop/src/corelib/x11 -Fi/home/fred/fpGUI-develop/src/corelib/x11 -Fu/home/fred/fpGUI-develop/src/corelib/render/software -Fu/home/fred/fpGUI-develop/src/gui -Fu/home/fred/fpGUI-develop/src/gui/db -Fu/home/fred/fpGUI-develop/src/reportengine # object pascal dialect and compil options -MObjFPC -Schi -vewnhi -Xs -XX -fPIC # End fpGUI-block _________________________________________________ *And here the compiler parameters used :* (for fpGUI library) -MObjFPC -Scghi -CX -Xs -XX -vewnhi -Fi/home/fred/fpGUIlib/src/units -Fu/home/fred/fpGUI-develop/lib/x86_64-linux -Fu/usr/share/lazarus/1.2.0/packager/units/x86_64-linux -Fu/home/fred/fpGUIlib/src/ -FU/home/fred/fpGUIlib/src/units/ -olibfpgui.so _________________________________________________ ----- Many thanks ;-) -- View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Error-compile-library-on-Linux-tp5718562p5718765.html Sent from the Free Pascal - General mailing list . _______________________________________________ fpc-pascal maillist - http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
The best regards, Fabio Luis Girardi PascalSCADA Project http://sourceforge.net/projects/pascalscada http://www.pascalscada.com

Reply by email

fredvs
to Fabio Luis Girardi
No problem... what's your fpc version? I'll compare with the right version

of FPC here.

Hum, now it compiles the library using same fpc.cfg with fpc 2.6.2. and 2.7.1 perfectly (the size of library is > with fpc 2.7.1).

It seems to me that the trick was to add lot of -Fu and -Fi search-paths for each unit and include used.

Also, delete all the *.ppu and *.o of previous compile.

And if still problem, try to compile each unit separately and compile the final library unit in last-end.

Hope it help...

-----
Many thanks ;-)

View this message in context: http://free-pascal-general.1045716.n5.nabble.com/Error-compile-library-on-Linux-tp5718562p5718779.html Sent from the Free Pascal - General mailing list .

Reply by email

Ewald
to fredvs
fredvs wrote
Also, delete all the *.ppu and *.o of previous compile.

FWIW: Removing all of them when you get weird errors always does the trick here. You can probably count yourself lucky as I once had a project with an outdated .o file that *did* link. Took me an our or so to track that one down :-)

Ewald

Reply by email