bitcoin: Mac OS X compilation with qt5 (and qt4) fails
Hi,
using the latest sources from git I’m unable to compile bitcoin with qt5. Trying to compile with qt 5.4.0 or 5.3.2 fails with the following message:
CXX qt/test/qt_test_test_bitcoin_qt-test_main.o In file included from qt/test/test_main.cpp:9: qt/test/uritests.h:8:10: fatal error: ‘QObject’ file not found
include <QObject>
^
CXX qt/test/qt_test_test_bitcoin_qt-uritests.o In file included from qt/test/uritests.cpp:5: qt/test/uritests.h:8:10: fatal error: ‘QObject’ file not found
include <QObject>
^
1 error generated. make[2]: *** [qt/test/qt_test_test_bitcoin_qt-test_main.o] Error 1 make[2]: *** Waiting for unfinished jobs… 1 error generated. make[2]: *** [qt/test/qt_test_test_bitcoin_qt-uritests.o] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1
real 1m19.367s user 9m10.002s sys 0m31.861s
Prior to compilation I’ve ran ./autogen.sh and ./configure
Trying to compile the package with qt 4.8.6 fails with this message: CXXLD bitcoind CXXLD bitcoin-cli CXXLD bitcoin-tx CXXLD test/test_bitcoin clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pie’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pie’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pie’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pie’ clang: warning: argument unused during compilation: ‘-pthread’ AR qt/libbitcoinqt.a /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/u /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/u /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/u /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/u OBJCXXLD qt/bitcoin-qt CXXLD qt/test/test_bitcoin-qt clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pie’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pthread’ clang: warning: argument unused during compilation: ‘-pie’ clang: warning: argument unused during compilation: ‘-pthread’ Undefined symbols for architecture x86_64: “vtable for RPCExecutor”, referenced from: RPCConsole::startExecutor() in libbitcoinqt.a(qt_libbitcoinqt_a-rpcconsole NOTE: a missing vtable usually means the first non-inline virtual member funct “vtable for RPCConsole”, referenced from: RPCConsole::RPCConsole(QWidget_) in libbitcoinqt.a(qt_libbitcoinqt_a-rpcco NOTE: a missing vtable usually means the first non-inline virtual member funct “RPCConsole::staticMetaObject”, referenced from: RPCConsole::RPCConsole(QWidget_) in libbitcoinqt.a(qt_libbitcoinqt_a-rpcco RPCConsole::clear() in libbitcoinqt.a(qt_libbitcoinqt_a-rpcconsole.o) RPCConsole::setNumConnections(int) in libbitcoinqt.a(qt_libbitcoinqt_a-rpc RPCConsole::FormatBytes(unsigned long long) in libbitcoinqt.a(qt_libbitcoi “BitcoinApplication::requestedShutdown()”, referenced from: BitcoinApplication::requestShutdown() in qt_bitcoin_qt-bitcoin.o “BitcoinApplication::requestedInitialize()”, referenced from: BitcoinApplication::requestInitialize() in qt_bitcoin_qt-bitcoin.o “vtable for BitcoinCore”, referenced from: BitcoinCore::BitcoinCore() in qt_bitcoin_qt-bitcoin.o NOTE: a missing vtable usually means the first non-inline virtual member funct “vtable for BitcoinApplication”, referenced from: BitcoinApplication::~BitcoinApplication() in qt_bitcoin_qt-bitcoin.o _main in qt_bitcoin_qt-bitcoin.o NOTE: a missing vtable usually means the first non-inline virtual member funct “BitcoinApplication::stopThread()”, referenced from: BitcoinApplication::~BitcoinApplication() in qt_bitcoin_qt-bitcoin.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [qt/bitcoin-qt] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1
real 1m51.749s user 12m50.340s sys 0m49.340s
-Flo
About this issue
- Original URL
- State: closed
- Created 9 years ago
- Comments: 20 (14 by maintainers)
Hey,
finally I’ve found a solution on how to compile bitcoin-qt with Qt5 (5.4.0), today.
The ./configure script expects the qt5_module include files to reside within the qt5 include directory. Actually these files are located at the qt5 lib … headers subdirectories with newer qt5 versions 😕
In order to resolve this issue I’ve created symlinks to the include directory running these simple commands: cd ~/Qt5.4.0/5.4/clang_64/include for MODULE in $(find …/lib -type d -name Headers); do ln -s $MODULE $(echo $MODULE | cut -d"/" -f3 | cut -d"." -f1) ; done
Et voilà, now the compilation with qt5 works as expected: PKG_CONFIG_PATH=~/Qt5.4.0/5.4/clang_64/lib/pkgconfig ./configure time make -j8 time make deploy
Probably I’m going to take a copy of the latest MAC OS X v0.10.99.0-6af674e (64-bit) snapshot to my wordpress blog https://flo.sh/category/bitcoin/ tomorrow.
Thanks for your feedback 😃
-Flo