Package: fp-units-math Version: 2.6.0
Hi, I have just installed this package with : apt-get install fp-units-math But I get a linkage error when I try to compile an example of this package : 09:38:44:tru@dk-99/~/data/tru/Pascal:$ fpc test_gmp.pas Free Pascal Compiler version 2.6.0-9 [2013/04/14] for x86_64 Copyright (c) 1993-2011 by Florian Klaempfl and others Target OS: Linux for x86-64 Compiling test_gmp.pas Linking test_gmp /usr/bin/ld: warning: link.res contains output sections; did you forget -T? /usr/bin/ld: cannot find -lgmp Error: Error while linking Fatal: There were 1 errors compiling module, stopping Fatal: Compilation aborted Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled) 10:04:08:tru@dk-99/~/data/tru/Pascal:$ I try to compile with include option : fpc -Fl/usr/lib/fpc/2.6.0/units/x86_64-linux/gmp test_gmp.pas and : fpc -Fo"/usr/lib/fpc/2.6.0/units/x86_64-linux/gmp/gmp.o" test_gmp.pas but with the same results Owever I have libgmp : 10:38:56:root@dk-99:/usr/lib/fpc/2.6.0/units/x86_64-linux/gmp# locate libgmp /usr/lib/x86_64-linux-gnu/libgmp.so.10 /usr/lib/x86_64-linux-gnu/libgmp.so.10.0.5 /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/libgmp.so /usr/share/doc/libgmp10 /usr/share/doc/libgmp10/README.Debian /usr/share/doc/libgmp10/TODO.Debian /usr/share/doc/libgmp10/changelog.Debian.gz /usr/share/doc/libgmp10/copyright /var/cache/apt/archives/libgmp10_2%3a5.0.5+dfsg-2_amd64.deb /var/lib/dpkg/info/libgmp10:amd64.list /var/lib/dpkg/info/libgmp10:amd64.md5sums /var/lib/dpkg/info/libgmp10:amd64.postinst /var/lib/dpkg/info/libgmp10:amd64.postrm /var/lib/dpkg/info/libgmp10:amd64.shlibs Here the file found in the package under /usr/share/doc/fp-units-math/2.6.0/examples/gmp: program test_pas; {$mode objfpc}{$H+} uses sysutils, math, gmp; const N = 2; NBITS = 100; var f: mpfloat; bits, digits: integer; begin f_set_default_prec(NBITS); bits := f_get_default_prec; digits := floor(bits * LOG_10_2); f := f_sqrt_ui(N); writeln(format('Sqrt(%d) to %d digits (%d bits) = %s', [N, digits, bits, string(f)])); f := f ** 2; writeln(format('Squared back = %s', [string(f)])); f -= N; writeln(format('Minus %d = %s', [N, string(f)])); end. My fpc.cfg is enclosed with this mail. The units is present in /usr/lib/fpc/2.6.0/units/x86_64-linux/gmp : 10:02:14:tru@dk-99:/home/tru# ls -l /usr/lib/fpc/2.6.0/units/x86_64-linux/gmp total 1224 -rw-r--r-- 1 root root 126524 avril 14 2013 gmp.o -rw-r--r-- 1 root root 394683 avril 14 2013 gmp.ppu -rw-r--r-- 1 root root 721896 avril 14 2013 libpgmp.a -rw-r--r-- 1 root root 87 avril 14 2013 Package.fpc 10:12:08:tru@dk-99:/home/tru# The linker "cannot find the path for lgmp" yet I try the option -Fl and I uncomment # searchpath for libraries -Fl/usr/lib/fpc/$fpcversion/lib in fpc.cfg. So I don't understand where is the problem. Best Regards, Michael
# # Config file generated by fpcmkcfg on 12-5-14 - 01:09:37 # 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 #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.7 #endif #ifdef cpux86_64 -Fl/usr/lib/gcc/x86_64-linux-gnu/4.7 #endif # searchpath for libraries -Fl/usr/lib/fpc/$fpcversion/lib #-Fl/lib;/usr/lib # 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 # multiarch library search path -Fl/usr/lib/$fpctarget-*