Author

Topic: bulding core using QT5 gui on debian stretch (Read 919 times)

legendary
Activity: 1456
Merit: 1081
I may write code in exchange for bitcoins.
Sorry for the necro, but this topic still isn't resolved for me.  debian Strech is now 'stable', and I've of course done git pull several times since january.

FWIW, this issue is restricted to building bitcoin with QT5.  I haven't tried it with QT4.  If I do --no-gui in configure, I can build headless bitcoin just fine.  I was hoping to get to the bottom of this, however.

Code:
/usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0: undefined reference to `xcb_send_request_with_fds'
collect2: error: ld returned 1 exit status
Makefile:3628: recipe for target 'qt/bitcoin-qt' failed
make[2]: *** [qt/bitcoin-qt] Error 1

My libxcb-dri3 is updated to latest in Stretch

Code:
$ sudo apt-get install libxcb-dri3-dev
Reading package lists... Done
Building dependency tree      
Reading state information... Done
libxcb-dri3-dev is already the newest version (1.12-1).

Sometime Debian isn't the fastest at upgrading software.  Is 1.12-1 a late enough version of libxcb-dri3?  Is this a red herring?  When I run "strings" on that so file, I see xcb_send_request_with_fds:

Code:
$ strings /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 | grep send
xcb_send_request
xcb_send_request_with_fds

So why is ld having a problem here?  I'm a little lost.



EDIT:

I just removed the qt5 packages and rebuilt with qt4 and no issues.  This is definitely not critical, but for my education I'd love to find out more about what's going on here.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
Try the official version from the official site maybe. Or try redownloading fromgithub to ensure there was no data loss of data while it was transmitted on the pull request.
Is that github repo not 'official'?
Quote

Have you had core installed on there before? If you have then there should be almost all of the dependency libraries already installed on that machine. If not, are all of the dependencies definitely installed?

The list of dependencies is here: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md

Indeed, I have.  I built core on this machine almost two years ago.  Since it was an old version, I did 'git pull' and tried to rebuild, and things failed.  I have updated the system and double checked the dependencies.  Of course last time I built it I was on a previous debian.  And I was building against qt4 instead of qt5, so, yah, things have changed in the mean time.

In any case, we know which part of the build process is having trouble, I guess I just need to drill down into that Makefile and figure out exactly which line went wrong and try to find a log from ld or something.  I was hoping that in posting here I'd either run across someone who happened to have encountered the same error or else run across someone who's a real whiz with the C build process.  Anyway, let me know if you see anything specific I should be checking.

You are correct that the GitHub version  is the official version. However it is hosted by an external company and the "official" version has the pre-built programs for you to run.
I'm suprised that someone like achow or shorena didn't come here anyway. My advice is in the hope that it can be fixed just from generic problems that may occur that some may not check for.

(if you download from the pre-built version then you avoid having to use the makefile commands don't you?)
legendary
Activity: 4256
Merit: 1313
Perhaps take a look here:
https://github.com/toggl/toggldesktop/issues/1100
https://github.com/MultiMC/MultiMC5/issues/1379

These seem to be a similar issue.  Perhaps some of their suggestions will help you troubleshoot it here.

legendary
Activity: 1456
Merit: 1081
I may write code in exchange for bitcoins.
Try the official version from the official site maybe. Or try redownloading fromgithub to ensure there was no data loss of data while it was transmitted on the pull request.
Is that github repo not 'official'?
Quote

Have you had core installed on there before? If you have then there should be almost all of the dependency libraries already installed on that machine. If not, are all of the dependencies definitely installed?

The list of dependencies is here: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md

Indeed, I have.  I built core on this machine almost two years ago.  Since it was an old version, I did 'git pull' and tried to rebuild, and things failed.  I have updated the system and double checked the dependencies.  Of course last time I built it I was on a previous debian.  And I was building against qt4 instead of qt5, so, yah, things have changed in the mean time.

In any case, we know which part of the build process is having trouble, I guess I just need to drill down into that Makefile and figure out exactly which line went wrong and try to find a log from ld or something.  I was hoping that in posting here I'd either run across someone who happened to have encountered the same error or else run across someone who's a real whiz with the C build process.  Anyway, let me know if you see anything specific I should be checking.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
Do you get the same error when building from the GitHub repo?  I didn't see in the quotations above, but which version of bitcoin is in the debian testing repo?

Sorry, 'the repo' was ambiguous there.  I should have said 'building from the github repo on debian testing'.

Code:
$ git remote show origin
* remote origin
  Fetch URL: https://github.com/bitcoin/bitcoin
  Push  URL: https://github.com/bitcoin/bitcoin
  HEAD branch: master
  Remote branches:
    0.10   tracked
    0.11   tracked
    0.12   tracked
    0.13   tracked
    0.8    tracked
    0.9    tracked
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

Try the official version from the official site maybe. Or try redownloading fromgithub to ensure there was no data loss of data while it was transmitted on the pull request.

Have you had core installed on there before? If you have then there should be almost all of the dependency libraries already installed on that machine. If not, are all of the dependencies definitely installed?

The list of dependencies is here: https://github.com/bitcoin/bitcoin/blob/master/doc/build-unix.md
legendary
Activity: 1456
Merit: 1081
I may write code in exchange for bitcoins.
Do you get the same error when building from the GitHub repo?  I didn't see in the quotations above, but which version of bitcoin is in the debian testing repo?

Sorry, 'the repo' was ambiguous there.  I should have said 'building from the github repo on debian testing'.

Code:
$ git remote show origin
* remote origin
  Fetch URL: https://github.com/bitcoin/bitcoin
  Push  URL: https://github.com/bitcoin/bitcoin
  HEAD branch: master
  Remote branches:
    0.10   tracked
    0.11   tracked
    0.12   tracked
    0.13   tracked
    0.8    tracked
    0.9    tracked
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
legendary
Activity: 4256
Merit: 1313
Do you get the same error when building from the GitHub repo?  I didn't see in the quotations above, but which version of bitcoin is in the debian testing repo?
legendary
Activity: 1456
Merit: 1081
I may write code in exchange for bitcoins.
I'm getting an error from the linker when building bitcoin from the repo on debian testing.

When I get to building qt:

Code:
  CXXLD    bench/bench_bitcoin
  CXX      qt/qt_bitcoin_qt-bitcoin.o
  CXX      qt/qt_libbitcoinqt_a-bantablemodel.o
  CXX      qt/qt_libbitcoinqt_a-bitcoinaddressvalidator.o
  CXX      qt/qt_libbitcoinqt_a-bitcoinamountfield.o
  CXX      qt/qt_libbitcoinqt_a-bitcoingui.o
  CXX      qt/qt_libbitcoinqt_a-bitcoinunits.o
  CXX      qt/qt_libbitcoinqt_a-clientmodel.o
  CXX      qt/qt_libbitcoinqt_a-guiutil.o
  CXX      qt/qt_libbitcoinqt_a-intro.o
  CXX      qt/qt_libbitcoinqt_a-modaloverlay.o
  CXX      qt/qt_libbitcoinqt_a-notificator.o
  CXX      qt/qt_libbitcoinqt_a-optionsdialog.o
  CXX      qt/qt_libbitcoinqt_a-optionsmodel.o
  CXX      qt/qt_libbitcoinqt_a-peertablemodel.o
  CXX      qt/qt_libbitcoinqt_a-rpcconsole.o
  CXX      qt/qt_libbitcoinqt_a-splashscreen.o
  CXX      qt/qt_libbitcoinqt_a-utilitydialog.o
  CXX      qt/qt_libbitcoinqt_a-addressbookpage.o
  CXX      qt/qt_libbitcoinqt_a-addresstablemodel.o
  CXX      qt/qt_libbitcoinqt_a-askpassphrasedialog.o
  CXX      qt/qt_libbitcoinqt_a-coincontroldialog.o
  CXX      qt/qt_libbitcoinqt_a-coincontroltreewidget.o
  CXX      qt/qt_libbitcoinqt_a-editaddressdialog.o
  CXX      qt/qt_libbitcoinqt_a-openuridialog.o
  CXX      qt/qt_libbitcoinqt_a-overviewpage.o
  CXX      qt/qt_libbitcoinqt_a-paymentrequestplus.o
  CXX      qt/qt_libbitcoinqt_a-paymentserver.o
  CXX      qt/qt_libbitcoinqt_a-receivecoinsdialog.o
  CXX      qt/qt_libbitcoinqt_a-receiverequestdialog.o
  CXX      qt/qt_libbitcoinqt_a-recentrequeststablemodel.o
  CXX      qt/qt_libbitcoinqt_a-sendcoinsdialog.o
  CXX      qt/qt_libbitcoinqt_a-sendcoinsentry.o
  CXX      qt/qt_libbitcoinqt_a-signverifymessagedialog.o
  CXX      qt/qt_libbitcoinqt_a-transactiondesc.o
  CXX      qt/qt_libbitcoinqt_a-transactiondescdialog.o
  CXX      qt/qt_libbitcoinqt_a-transactionfilterproxy.o
  CXX      qt/qt_libbitcoinqt_a-transactionrecord.o
  CXX      qt/qt_libbitcoinqt_a-transactiontablemodel.o
  CXX      qt/qt_libbitcoinqt_a-transactionview.o
  CXX      qt/qt_libbitcoinqt_a-walletframe.o
  CXX      qt/qt_libbitcoinqt_a-walletmodel.o
  CXX      qt/qt_libbitcoinqt_a-walletmodeltransaction.o
  CXX      qt/qt_libbitcoinqt_a-walletview.o
  CXX      qt/qt_libbitcoinqt_a-moc_bantablemodel.o
  CXX      qt/qt_libbitcoinqt_a-moc_bitcoinamountfield.o
  CXX      qt/qt_libbitcoinqt_a-moc_bitcoingui.o
  CXX      qt/qt_libbitcoinqt_a-moc_bitcoinunits.o
  CXX      qt/qt_libbitcoinqt_a-moc_coincontroldialog.o
  CXX      qt/qt_libbitcoinqt_a-moc_guiutil.o
  GEN      qt/moc_modaloverlay.cpp
  CXX      qt/qt_libbitcoinqt_a-moc_modaloverlay.o
  CXX      qt/qt_libbitcoinqt_a-moc_notificator.o
  CXX      qt/qt_libbitcoinqt_a-moc_optionsmodel.o
  CXX      qt/qt_libbitcoinqt_a-moc_overviewpage.o
  CXX      qt/qt_libbitcoinqt_a-moc_peertablemodel.o
  CXX      qt/qt_libbitcoinqt_a-moc_paymentserver.o
  CXX      qt/qt_libbitcoinqt_a-moc_receivecoinsdialog.o
  CXX      qt/qt_libbitcoinqt_a-moc_receiverequestdialog.o
  CXX      qt/qt_libbitcoinqt_a-moc_recentrequeststablemodel.o
  CXX      qt/qt_libbitcoinqt_a-moc_rpcconsole.o
  CXX      qt/qt_libbitcoinqt_a-moc_sendcoinsdialog.o
  CXX      qt/qt_libbitcoinqt_a-moc_sendcoinsentry.o
  CXX      qt/qt_libbitcoinqt_a-moc_transactionfilterproxy.o
  CXX      qt/qt_libbitcoinqt_a-moc_transactiontablemodel.o
  CXX      qt/qt_libbitcoinqt_a-moc_transactionview.o
  CXX      qt/qt_libbitcoinqt_a-moc_walletmodel.o
  CXX      qt/qt_libbitcoinqt_a-moc_walletview.o
  AR       qt/libbitcoinqt.a
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
  OBJCXXLD qt/bitcoin-qt
//usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0: undefined reference to `xcb_send_request_with_fds'
collect2: error: ld returned 1 exit status
Makefile:3564: recipe for target 'qt/bitcoin-qt' failed
make[2]: *** [qt/bitcoin-qt] Error 1
make[2]: Leaving directory '/home/tsp/src/bitcoin/src'
Makefile:8897: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/tsp/src/bitcoin/src'
Makefile:685: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

My config:

Code:
Options used to compile and link:
  with wallet   = yes
  with gui / qt = yes
    qt version  = 5
    with qr     = yes
  with zmq      = no
  with test     = yes
  with bench    = yes
  with upnp     = yes
  debug enabled = no

  target os     = linux
  build os      =

  CC            = gcc
  CFLAGS        = -g -O2
  CPPFLAGS      =  -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
  CXX           = g++
  CXXFLAGS      = -g -O2 -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter
  LDFLAGS       =

libxcb-dri3.so.0 exists and is where you'd expect.  I'm not sure why ld is failing.  Let me know if you guys have tips!

Oh yah, and presumably the issue is not in that file:

Code:
$ strings /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 |grep xcb_send_request_with_fds
xcb_send_request_with_fds

Cheers!
Jump to: