Problemas al compilar CopperLark en Ubuntu 12.04

Tengo problemas para compilar la fuente de Copperlark en Ubuntu 12.04.

Ejecuto el siguiente comando: Код: [Выделить]

make -f makefile.unix USE_UPNP=-

que falla en este error:

/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

Vi que otras personas tenían el mismo problema aquí: https://bitcointalk.org/index.php?topic=227252.0

Obtengo el código fuente de aquí: https://copperlark.com/wp-download.php?file=CopperLarkSrc.zip

Puedo compilar otras criptomonedas en este servidor (litecoin) pero no CPL.

¿Algunas ideas?

Perdón a todos, me olvidé de este. Al final, cambié a una plataforma x86 y compilé. También debería haber especificado que solo estaba probando X86_64.

Respuestas (2)

de: https://bitcointalk.org/index.php?topic=227252.msg6843676;topicseen#msg6843676 (su enlace, nueva publicación)

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

Espero que esto ayude.

Gracias. Parece que esto me permitiría compilarlo en X86_64, por lo que es una mejor respuesta que la mía.

Lo siguiente puede ayudar:

cd leveldb
make clean
cd ..
make -f makefile.unix USE_UPNP=-
¿Por qué? ¿Qué bueno es esto? ¿Por qué lo sugieres?
Solo porque tuve exactamente el mismo problema al compilar un par de otras monedas y los comandos anteriores lo resolvieron. Entonces, sería bueno saber por qué votaste en contra de mi respuesta. ¿Probaste mi recomendación?
No voté negativamente su respuesta, pero se marcó como de baja calidad. Puse mi comentario allí, porque creo que podría usar más explicación: por ejemplo, en qué directorio comenzó. Qué se supone que debe hacer 'limpiar' por usted, y así sucesivamente. Tal como está, esta respuesta es extremadamente corta y no es fácil determinar si la respuesta es correcta o valiosa, a menos que tenga el mismo problema que el OP.
cd leveldb make clean Funcionó muy bien gracias