aMule Forum

English => Multiplatform => Mac OSX => Topic started by: bj575bd on April 30, 2005, 11:43:44 AM

Title: Amule cvs (29/04/05) compilation problem on tiger
Post by: bj575bd on April 30, 2005, 11:43:44 AM
Hi,
another compilation problem now with amule itself:

if g++ -DHAVE_CONFIG_H -I. -I. -I.. -D__SYSTRAY_DISABLED__ -DUSE_WX_TRAY -I/usr/local/lib/wx/include/mac-ansi-release-2.6 -I/usr/local/include/wx-2.6 -D__WXMAC__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DNO_GCC_PRAGMA -DUSE_EMBEDDED_CRYPTO -W -Wall -g -ggdb -fno-inline -D__DEBUG__ -fmessage-length=0 -MT amule-CryptoPP.o -MD -MP -MF ".deps/amule-CryptoPP.Tpo" \
-c -o amule-CryptoPP.o `test -f 'CryptoPP.cpp' || echo './'`CryptoPP.cpp; \
then mv -f ".deps/amule-CryptoPP.Tpo" ".deps/amule-CryptoPP.Po"; \
else rm -f ".deps/amule-CryptoPP.Tpo"; exit 1; \
fi
CryptoPP.cpp: In member function `virtual void CryptoPP::InvertibleRSAFunction::GenerateRandom(CryptoPP::RandomNumberGener
ator&, const CryptoPP::NameValuePairs&)':
CryptoPP.cpp:7905: error: cannot allocate an object of abstract type 'CryptoPP::NameValuePairs'
CryptoPP.h:606: note: because the following virtual functions are pure within 'CryptoPP::NameValuePairs':
CryptoPP.h:687: note: virtual bool CryptoPP::NameValuePairs::GetVoidValue(const char*, const std::type_info&, void*) const
make[3]: *** [amule-CryptoPP.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

To try to solve this issue i downloaded a new version of crypto++ (5.2.1) from: http://www.eskimo.com/~weidai/cryptlib.html#download
i have unzipped in my home and i have run ./configure --disable-systray --disable-gtk --with-wx-config=/usr/local/bin/wx-config --with-crypto-prefix=/Users//cryptopp521/
but same error.
Title: Re: Amule cvs (29/04/05) compilation problem on tiger
Post by: ken on May 01, 2005, 05:29:26 PM
Weird.  As far as I can tell, the class being allocated is a concrete class derived from the abstract NameValuePairs.  It does declare a non-pure-virtual override of the pure-virtual from the base.

There may be a change to certain language rules which causes this not to be valid under C++, or this may be a bug in gcc4.

Also, aMule uses internal copies of Crypto++ source files.  Downloading and installing the lib wouldn't address this bug because aMule is still using its internal copies.  However, it does serve as a proof that the new Crypto++ sources do compile with gcc4.

So, I will bring up the issue of updating aMule's internal copies of these source files to the new versions.
Title: Re: Amule cvs (29/04/05) compilation problem on tiger
Post by: Xaignar on May 01, 2005, 10:21:26 PM
I'm curious, did Crypto++ 5.2.1 actually compile or did it fail with the same error? I'm not certain which it is from your post.
Title: Re: Amule cvs (29/04/05) compilation problem on tiger
Post by: bj575bd on May 02, 2005, 08:40:18 AM
Crypto++ 5.2.1 doesn't compile with gcc 4.0 (the default in tiger), the gcc version must be switched to 3.3 with gcc_select.

Finally i get amule compiled only setting the version of gcc to 3.3 and after following the default compilation howto using the embended crypto in amule cvs.

With gcc 4.0 i think there is no chance to get it compile for now.