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?

1
  • 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. Sep 17, 2014 at 23:55

2 Answers 2

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.

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

The following can help:

cd leveldb
make clean
cd ..
make -f makefile.unix USE_UPNP=-
4
  • Why? What good is this? Why do you suggest it?
    – Murch
    Jun 26, 2014 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, 2014 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, 2014 at 22:46
  • cd leveldb make clean Worked great thank you
    – Legends
    May 31, 2018 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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