Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#2598 closed Defect (fixed)

Qt client needs to link libdht but doesn't

Reported by: ThomasCr Owned by: charles
Priority: Normal Milestone: 1.80
Component: Qt Client Version: 1.76
Severity: Normal Keywords:
Cc:

Description

Version is the current trunc, but I also tested with Nightly tarballs svn9546 and got the same error.

g++  -o qtr about.o app.o details.o file-tree.o filters.o hig.o license.o mainwin.o make-dialog.o options.o prefs.o prefs-dialog.o qticonloader.o relocate.o session.o session-dialog.o squeezelabel.o stats-dialog.o torrent.o torrent-delegate.o torrent-delegate-min.o torrent-filter.o torrent-model.o triconpushbutton.o utils.o watchdir.o moc_about.o moc_app.o moc_details.o moc_file-tree.o moc_hig.o moc_license.o moc_mainwin.o moc_make-dialog.o moc_options.o moc_prefs.o moc_prefs-dialog.o moc_relocate.o moc_session.o moc_session-dialog.o moc_squeezelabel.o moc_stats-dialog.o moc_torrent.o moc_torrent-delegate.o moc_torrent-delegate-min.o moc_torrent-filter.o moc_torrent-model.o moc_triconpushbutton.o moc_utils.o moc_watchdir.o qrc_application.o    -L/usr/lib ../libtransmission/libtransmission.a ../third-party/miniupnp/libminiupnp.a ../third-party/libnatpmp/libnatpmp.a ../third-party/libevent/.libs/libevent.a -lfontconfig -lcurl -lssl -lcrypto -lpthread -lQtGui -lQtNetwork -lQtCore
../libtransmission/libtransmission.a(tr-dht.o): In function `tr_dhtInit':
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:137: undefined reference to `dht_debug'
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:165: undefined reference to `dht_init'
../libtransmission/libtransmission.a(tr-dht.o): In function `tr_dhtUninit':
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:219: undefined reference to `dht_get_nodes'
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:237: undefined reference to `dht_uninit'
../libtransmission/libtransmission.a(tr-dht.o): In function `getstatus':
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:263: undefined reference to `dht_nodes'
../libtransmission/libtransmission.a(tr-dht.o): In function `tr_dhtAddNode':
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:326: undefined reference to `dht_ping_node'
../libtransmission/libtransmission.a(tr-dht.o): In function `tr_dhtAnnounce':
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:389: undefined reference to `dht_search'
../libtransmission/libtransmission.a(tr-dht.o): In function `event_callback':
/usr/src/torrent/transmission-1.76/libtransmission/tr-dht.c:410: undefined reference to `dht_periodic'
collect2: ld returned 1 exit status
make[1]: *** [qtr] Fehler 1
make[1]: Verlasse Verzeichnis '/usr/src/torrent/transmission-1.76/qt'
make: *** [build-stamp] Fehler 2

Change History (8)

comment:1 Changed 13 years ago by ThomasCr

I forgot to say, that my system is Ubuntu Karmic

~$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) 

~$ libtool --version
ltmain.sh (GNU libtool) 2.2.6
Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996

Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

~$ automake --version
automake (GNU automake) 1.11
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Tom Tromey <tromey@redhat.com>
       and Alexandre Duret-Lutz <adl@gnu.org>.

~$ autoconf --version
autoconf (GNU Autoconf) 2.64
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv2+: GNU GPL version 2 or later
<http://gnu.org/licenses/old-licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.


comment:2 Changed 13 years ago by charles

  • Summary changed from build fail in function `tr_dhtInit': to Qt client not linking libdht

Hi Thomas,

I'm afraid I can't reproduce this. Is there a static dht library getting built in the third-party/dht/ library?

comment:3 Changed 13 years ago by ThomasCr

How can I see it?

comment:4 Changed 13 years ago by ThomasCr

I run

sudo find / -name \*libdht\*
/usr/src/torrent/transmission-1.76/third-party/dht/libdht.a
/usr/src/torrent/svn/transmission-1.76/third-party/dht/libdht.a

And this is the only result I get..

comment:5 Changed 13 years ago by charles

  • Status changed from new to assigned

fixed in trunk for 1.80 by r9569.

Actually I think this is more of a timing issue... if you were to run qmake to build the makefiles /after/ running make in the other directories, I think the Qt client should build correctly in 1.76.

However since third-party/libdht/libdht.a is mandatory in 1.80, there's no need to conditionally-link it anymore... so the timing issue is irrelevant now as of r9569 ;)

comment:6 Changed 13 years ago by charles

  • Milestone changed from None Set to 1.80
  • Resolution set to fixed
  • Status changed from assigned to closed

comment:7 Changed 13 years ago by ThomasCr

thanks, it works - build is now possible.

comment:8 Changed 12 years ago by charles

  • Summary changed from Qt client not linking libdht to Qt client needs to link libdht but doesn't
Note: See TracTickets for help on using tickets.