Probleme beim Kompilieren von CopperLark unter Ubuntu 12.04

Ich habe Probleme beim Kompilieren der Copperlark-Quelle unter Ubuntu 12.04.

Ich führe den folgenden Befehl aus: Код: [Выделить]

make -f makefile.unix USE_UPNP=-

was bei diesem Fehler fehlschlägt:

/root/CopperLarkSrc/src/leveldb/libleveldb.a(format.o): In function `leveldb::ReadBlock(leveldb::RandomAccessFile*, leveldb::ReadOptions const&, leveldb::BlockHandle const&, leveldb::BlockContents*)':
format.cc:(.text+0x510): undefined reference to `operator new[](unsigned int)'
format.cc:(.text+0x86a): undefined reference to `operator new[](unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::FileState::Append(leveldb::Slice const&)':
memenv.cc:(.text+0x467): undefined reference to `operator new[](unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::InMemoryEnv::NewSequentialFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::SequentialFile**)':
memenv.cc:(.text+0x10a6): undefined reference to `operator new(unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::InMemoryEnv::NewRandomAccessFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::RandomAccessFile**)':
memenv.cc:(.text+0x1212): undefined reference to `operator new(unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::InMemoryEnv::NewWritableFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::WritableFile**)':
memenv.cc:(.text+0x132d): undefined reference to `operator new(unsigned int)'
memenv.cc:(.text+0x136b): undefined reference to `operator new(unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::InMemoryEnv::GetChildren(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)':
memenv.cc:(.text+0x1554): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const'
memenv.cc:(.text+0x15d1): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned int, unsigned int) const'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::InMemoryEnv::LockFile(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::FileLock**)':
memenv.cc:(.text+0x1be8): undefined reference to `operator new(unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::(anonymous namespace)::InMemoryEnv::NewLogger(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, leveldb::Logger**)':
memenv.cc:(.text+0x1d52): undefined reference to `operator new(unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `leveldb::NewMemEnv(leveldb::Env*)':
memenv.cc:(.text+0x1daf): undefined reference to `operator new(unsigned int)'
/root/CopperLarkSrc/src/leveldb/libmemenv.a(memenv.o): In function `__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, leveldb::(anonymous namespace)::FileState*> > >::allocate(unsigned int, void const*)':
memenv.cc:(.text+0x40d3): undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status
make: *** [bitcoind] Error 1

Ich habe hier gesehen, dass andere Leute das gleiche Problem haben: https://bitcointalk.org/index.php?topic=227252.0

Ich bekomme den Quellcode von hier: https://copperlark.com/wp-download.php?file=CopperLarkSrc.zip

Ich kann andere Kryptos auf diesem Server (Litecoin) kompilieren, aber nicht CPL.

Irgendwelche Ideen?

Sorry an alle, das habe ich vergessen. Am Ende wechselte ich zu einer x86-Plattform und es wurde kompiliert. Ich hätte auch angeben sollen, dass ich nur X86_64 ausprobiert habe.

Antworten (2)

von: https://bitcointalk.org/index.php?topic=227252.msg6843676;topicseen#msg6843676 (dein Link, neuer Beitrag)

cd CopperLarkSrc
chmod +x src/leveldb/build_detect_platform
rm src/leveldb/leveldb.a
rm src/leveldb/libmemenv.a
qmake
make

Hoffe das hilft.

Danke. Sieht so aus, als würde ich es auf X86_64 kompilieren können, also ist es eine bessere Antwort als meine.

Folgendes kann helfen:

cd leveldb
make clean
cd ..
make -f makefile.unix USE_UPNP=-
Warum? Was nützt das? Warum schlagen Sie es vor?
Nur weil ich beim Kompilieren einiger anderer Coins genau das gleiche Problem hatte und die obigen Befehle es gelöst haben. Es wäre also schön zu hören, warum Sie meine Antwort abgelehnt haben. Hast du meine Empfehlung ausprobiert?
Ich habe Ihre Antwort nicht abgelehnt, aber sie wurde als minderwertig gekennzeichnet. Ich habe meinen Kommentar dort hingestellt, weil ich denke, dass er mehr Erklärung gebrauchen könnte: Zum Beispiel, in welchem ​​Verzeichnis Sie angefangen haben. Was 'make clean' für Sie tun soll, und so weiter. Diese Antwort ist ohnehin extrem kurz und es ist nicht einfach festzustellen, ob die Antwort richtig oder wertvoll ist, es sei denn, Sie haben das gleiche Problem wie das OP.
cd leveldb make clean Hat super geklappt danke