On 22 Apr., 19:09, Mensanator <mensana...@[EMAIL PROTECTED]
> wrote:
> On Apr 22, 1:46 am, thomas.mer...@[EMAIL PROTECTED]
wrote:
> > On 22 Apr., 06:26, Mensanator <mensana...@[EMAIL PROTECTED]
> wrote:
> > > On Apr 20, 3:51 pm, thomas.mer...@[EMAIL PROTECTED]
wrote:
> > > > - The file read_me.txt was improved to contain a chapter about
> > > > warnings and a chapter which explains how to use the GMP
library.
>
> > > I'm having problems with this (regular bigInt compiled fine).
>
> > > I'm using cygwin and modified the makefile thusly:
>
> > > # LIBS = c:/cygwin/usr/X11R6/lib/libX11.dll.a -lncurses -lm
> > > LIBS = c:/cygwin/usr/X11R6/lib/libX11.dll.a -lncurses -lm C:/cygwin/
> > > Seed7/seed7/lib/libgmp.a
> > > SEED7_LIB = seed7_05.a
> > > COMP_DATA_LIB = s7_data.a
> > > COMPILER_LIB = s7_comp.a
> > > CC = gcc
>
> > > # BIGINT = big_rtl
> > > BIGINT = big_gmp
>
> > > I had to use a full path for my gmp library which is libgmp.a like I
> > > had to do for
> > > libX11.dll.a. Before that change, I had "file not found" errors.
>
> > > Also, put gmp.h into Seed7/src folder, that made most of the
> > > reference problems stop.
>
> > > But I'm still getting
>
> > > gcc hi.o s7_comp.a s7_data.a seed7_05.a c:/cygwin/usr/X11R6/lib/
> > > libX11.dll.a -l
> > > ncurses -lm C:/cygwin/Seed7/seed7/lib/libgmp.a -o hi
> > > seed7_05.a(fil_rtl.o):fil_rtl.c:(.text+0x76): undefined reference to
> > > `_bigUIConv'
> > > seed7_05.a(fil_rtl.o):fil_rtl.c:(.text+0x11d): undefined reference
to
> > > `_bigUIConv'
> > > Info: resolving _cur_term by linking to __imp__cur_term
(auto-im****t)
> > > collect2: ld returned 1 exit status
> > > make: *** [hi] Error 1
>
> > > Am I missing something? Or have a file in the wrong place?
>
> > All files are at the right place. The function bigUIConv is
> > really missing from the file big_gmp.c . Sorry, but I had not
> > the possibility to check cygwin (linux and MinGW do not need
> > it). The good message is: bigUIConv is very simple:
>
> > ----------------------------------------
> > #ifdef ANSI_C
>
> > gmpBiginttype bigUIConv (inttype number)
> > #else
>
> > gmpBiginttype bigUIConv (number)
> > inttype number;
> > #endif
>
> > {
> > gmpBiginttype result;
>
> > /* bigUIConv */
> > result = malloc(sizeof(__mpz_struct));
> > mpz_init_set_ui(result, number);
> > return(result);
> > } /* bigUIConv */
> > ----------------------------------------
>
> > If you add it at the end of the file big_gmp.c you should
> > succeed.
>
> > I hope that helps. Sorry for the trouble.
>
> Thanks! That fixed it.
>
> Hate to be a pest, but I've got three different machines with
> three different cygwin configurations. I try my best to resolve
> things, but compilers aren't my forte. I even considered trying
> to find the missing reference, but I can see that I never would
> have resolved it.
>
> > If there are other problems: Please tell me.
>
> I haven't had time to run it yet, but I plan to use the gmp
> version when I do a Seed7 implementation of Sedgewick's
> algorithm and we don't want my C version to have an unfair
> advantage.
Can you give me an update.
What should I add to the next release (except for a faster
modInverse function)?
BTW.: What results does mpz_invert(rop, op1, op2) have when
op2 is negative? Is it defined at all? Is there some relation like:
mpz_invert(rop, op1, -op2) = mpz_invert(rop, op1, op2)
Greetings Thomas Mertes
Seed7 Homepage: http://seed7.sourceforge.net
Seed7 - The extensible programming language: User defined statements
and operators, abstract data types, templates without special
syntax, OO with interfaces and multiple dispatch, statically typed,
interpreted or compiled, ****table, runs under linux/unix/windows.


|