Re: [htdig] Unable to compile htfuzzy under Solaris 2.5.1 : help me ...


Gilles Detillieux (grdetil@scrc.umanitoba.ca)
Fri, 18 Jun 1999 10:25:58 -0500 (CDT)


According to x y (a.k.a. Didier Claverie):
> I try to compile ht://Dig 3.1.2 under Solaris 2.5.1 with gcc 2.7.2.3
> I have just compiled and installed libg++ 2.7.2 successfully
> (basically, in /usr/local) from the sources availiable at
> sunfreeware.com
>
> I have the following error :
>
> *****
>
> iris(root)/export/home/cetw/taf/htdig-3.1.2> make
> [...]
> gcc -o htfuzzy -L../htlib -L../htcommon -L../db/dist -L/usr/lib
> Endings.o EndingsDB.o Exact.o Fuzzy.o Metaphone.o Soundex.o
> SuffixEntry.o Synonym.o htfuzzy.o Substring.o Prefix.o
> ./htcommon/libcommon.a ../htlib/libht.a ../db/dist/libdb.a -lnsl
> -lsocket
> Undefined first referenced
> symbol in file
> cout EndingsDB.o
> _vt.7istream.3ios ../htlib/libht.a(Configuration.o)
> write__7ostreamPCci ../htlib/libht.a(String.o)
> _._8ifstream ../htlib/libht.a(Configuration.o)
> endl__FR7ostream EndingsDB.o
> cerr Prefix.o
> __ls__7ostreamPCv ../htlib/libht.a(String.o)
> __ls__7ostreamPCc EndingsDB.o
> getline__7istreamPcic ../htlib/libht.a(Configuration.o)
> __ls__7ostreamc EndingsDB.o
> __ls__7ostreami EndingsDB.o
> close__11fstreambase ../htlib/libht.a(Configuration.o)
> _vt.8ifstream.3ios ../htlib/libht.a(Configuration.o)
> __11fstreambaseiPCcii ../htlib/libht.a(Configuration.o)
> flush__7ostream EndingsDB.o
> _vt.3ios ../htlib/libht.a(Configuration.o)
> ld: fatal: Symbol referencing errors. No output written to htfuzzy
> *** Error code 1
> make: Fatal error: Command failed for target `htfuzzy'
> Current working directory /export/home/cetw/taf/htdig-3.1.2/htfuzzy
> *** Error code 1
> make: Fatal error: Command failed for target `all'
>
> *****
>
> I read in the FAQ there could be some pb with libht.a, but considering
> I just installed the libg++ ...
> (correct me if I'm wrong, but I understood that libstdc++ was included
> in libg++)

Both are C++ libraries. I believe libstdc++ is the newer one that comes
with egcs, while libg++ comes with the older g++ compiler. Your problem
looks a lot like the one reported just yesterday by Dan Anoaica, which
he ran into on an HP-UX system. Here's what I told him:

 Something must have gone wrong during the configure step. For some reason,
 the Makefile is trying to use gcc, rather than c++ or g++, to link together
 C++ modules. The errors from ld are happening because it's not looking
 through your C++ library for the missing objects.

Someone please correct me if I'm wrong, but I don't think gcc will ever
look for the C++ library, whether it's libg++ or libstdc++. In this
case, why is configure setting up the Makefiles to use gcc to link
(and compile?) C++ code, when it should be using another command?
(retorical question, but one that I wouldn't mind hearing an answer to,
if someone knows)

I suspect that both you and Dan are running installations of C++ that
are somehow non-standard, and configure is having problems with them.
The other possibility may be that your "make" program is not dealing
with the Makefiles properly. Have you tried GNU make?

-- 
Gilles R. Detillieux              E-mail: <grdetil@scrc.umanitoba.ca>
Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/~grdetil
Dept. Physiology, U. of Manitoba  Phone:  (204)789-3766
Winnipeg, MB  R3E 3J7  (Canada)   Fax:    (204)789-3930
------------------------------------
To unsubscribe from the htdig mailing list, send a message to
htdig@htdig.org containing the single word "unsubscribe" in
the SUBJECT of the message.



This archive was generated by hypermail 2.0b3 on Fri Jun 18 1999 - 07:46:53 PDT