On Sun, Oct 19, 2008 at 10:40 PM, Idomeneo <[EMAIL PROTECTED]> wrote:
> Hello, > > I'm trying to compile and linking the example main_new (in folder > ExamplesC, in gprolog folder) from my gcc 3.4.6 (instead than gplc [1.3.0], > likewise the book taught) and I cannot do that! > > That's how I'm trying: > > - Create two object files with: > > $> gcc -c -o new_main_c.c -I ../src/EnginePl > $> gplc -c new_main.pl > > ( with option "-I", I'm simply telling to gcc where to find gprolog.h) > > - Linking them together with gcc with: > > $> gcc -o new_main new_main.o new_main_c.o -lbips_fd -lbips_pl > -lengine_pl -lengine_fd -llinedit -L ../src/EnginePl -L ../src/BipsPl -L > ../src/BipsFD -L ../src/EngineFD -L ../src/Linedit/ > > (with "-L" options I tell to the gcc where to find libraries) > > It seems pretty clear (almost to me) but it doesn't work at all and I > absolutely can't figure out why!! > Below you can see output of what I get when I try to compile like I write > above: > > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Round': > arith_inl_c.c:(.text+0x75a): undefined reference to `lrint' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Floor': > arith_inl_c.c:(.text+0x7ba): undefined reference to `floor' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Ceiling': > arith_inl_c.c:(.text+0x83a): undefined reference to `ceil' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Atan': > arith_inl_c.c:(.text+0x1553): undefined reference to `atan' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Sqrt': > arith_inl_c.c:(.text+0x15d9): undefined reference to `sqrt' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Pow': > arith_inl_c.c:(.text+0x166c): undefined reference to `pow' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Log': > arith_inl_c.c:(.text+0x16e3): undefined reference to `log' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Exp': > arith_inl_c.c:(.text+0x1743): undefined reference to `exp' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Asin': > arith_inl_c.c:(.text+0x17a3): undefined reference to `asin' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Sin': > arith_inl_c.c:(.text+0x1803): undefined reference to `sin' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Acos': > arith_inl_c.c:(.text+0x1863): undefined reference to `acos' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(arith_inl_c.o): > In function `Fct_Cos': > arith_inl_c.c:(.text+0x18c3): undefined reference to `cos' > /usr/local/bin/../lib/gcc/i686-pc-linux-gnu/3.4.5/../../../libbips_pl.a(os_interf_c.o): > In function `Select_5': > os_interf_c.c:(.text+0x43e): undefined reference to `fmod' > collect2: ld returned 1 exit status > > I don't know what to try or do, any advice or help would be nice; I really > need to get rid of this! > Thank you really much! > > Idomeneo > Looks like you forgot to link with '-lm', try adding it to your command line: gcc -o new_main new_main.o new_main_c.o -lm -lbips_fd -lbips_pl -lengine_pl -lengine_fd -llinedit -L ../src/EnginePl -L ../src/BipsPl -L ../src/BipsFD -L ../src/EngineFD -L ../src/Linedit/ That should solve the undefined references to math lib. -- Marcello Azambuja
_______________________________________________ Users-prolog mailing list [email protected] http://lists.gnu.org/mailman/listinfo/users-prolog
