
nitinsk@cfdvs.iitb.ac.in wrote:
following your instructions, i compiled the code snippet that you had
sent. and as you had guessed, it did not compile. i am attaching a file containing the output of the compile command.
Dear Nitin,
the output you sent shows nothing wrong. I am now convinced that you should have, in your system, a (old) version of GMP compiled with a different (version of the) C++ compiler. If you installed GMP 4.1.2 compiled with GCC 3.3 in /usr/local you should see something like the following
$ ls -l /usr/local/include/gmp* -rw-r--r-- 1 root root 79571 Jun 30 15:32 /usr/local/include/gmp.h -rw-r--r-- 1 root root 182330 Jun 30 15:32 /usr/local/include/gmpxx.h $ ls -l /usr/local/lib/libgmp* -rw-r--r-- 1 root root 2863428 Jun 30 15:32 /usr/local/lib/libgmp.a -rwxr-xr-x 1 root root 693 Jun 30 15:32 /usr/local/lib/libgmp.la lrwxrwxrwx 1 root root 15 Jun 30 15:32 /usr/local/lib/libgmp.so -> libgmp.so.3.3.2 lrwxrwxrwx 1 root root 15 Jun 30 15:32 /usr/local/lib/libgmp.so.3 -> libgmp.so.3.3.2 -rwxr-xr-x 1 root root 1409013 Jun 30 15:32 /usr/local/lib/libgmp.so.3.3.2 -rw-r--r-- 1 root root 1337872 Jun 30 15:32 /usr/local/lib/libgmpxx.a -rwxr-xr-x 1 root root 1161 Jun 30 15:32 /usr/local/lib/libgmpxx.la lrwxrwxrwx 1 root root 17 Jun 30 15:32 /usr/local/lib/libgmpxx.so -> libgmpxx.so.3.0.4 lrwxrwxrwx 1 root root 17 Jun 30 15:32 /usr/local/lib/libgmpxx.so.3 -> libgmpxx.so.3.0.4 -rwxr-xr-x 1 root root 629220 Jun 30 15:32 /usr/local/lib/libgmpxx.so.3.0.4
And this should be the only version of GMP's libgmpxx.* files you have in the system. If, for example, you have another instance of the GMP C++ interface installed in a place that your compiler looks into _before_ looking into /usr/local/lib, this may be the cause of your problem.
Try passing the --verbose option to the linker, i.e., use the command
g++ -v -I/usr/local/include tgmp.cc -L/usr/local/lib -lgmpxx -lgmp -Xlinker --verbose
and check where the linker picks libgmpxx.so from. For instance, here is what I see in the output of the above command:
attempt to open /usr/local/lib/libgmpxx.so succeeded -lgmpxx (/usr/local/lib/libgmpxx.so)
This tells me that the linker is picking up the right version of the library. Keep us informed. Cheers
Roberto