0

I am having trouble compiling the Copperlark source on Ubuntu 12.04.

I run the following command: Код: [Выделить]

make -f makefile.unix USE_UPNP=-

which fails on this 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

I saw other people have the same issue here: https://bitcointalk.org/index.php?topic=227252.0

I'm getting the source code from here: https://copperlark.com/wp-download.php?file=CopperLarkSrc.zip

I'm able to compile other crypto on this server (litecoin) but not CPL.

Any ideas?

  • Sorry everyone, I forgot about this one. In the end, I switched to an x86 platform and it compiled. I also should have specified that I was only trying X86_64. – NullPointer Sep 17 '14 at 23:55
0

from: https://bitcointalk.org/index.php?topic=227252.msg6843676;topicseen#msg6843676 (your link, new post)

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

Hope this helps.

  • Thanks. Looks like this would let me compile it on X86_64 so it's a better answer than mine. – NullPointer Sep 17 '14 at 23:58
1

The following can help:

cd leveldb
make clean
cd ..
make -f makefile.unix USE_UPNP=-
  • Why? What good is this? Why do you suggest it? – Murch Jun 26 '14 at 11:03
  • Just because i got exactly the same problem while compiling a couple of other coins and the above commands solved it. So it would be nice to hear why did you downvote my answer. Did you try my recommendation? – b00ster Jun 29 '14 at 13:33
  • I did not downvote your answer, but it was flagged as low-quality. I put my comment there, because I think it could use more explanation: For example what directory you started out in. What 'make clean' is supposed to do for you, and so forth. As it is, this answer is extremely short and it is not easy to determine whether the answer is correct or valuable, unless you have the same problem as the OP. – Murch Jun 29 '14 at 22:46
  • cd leveldb make clean Worked great thank you – Legends May 31 '18 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.