All,
Linking CXX shared library libtdeinit_kicker.so /usr/bin/ld: cannot find -ldbus-tqt-1
This looks like a pkgconfig issue. The dbus-tqt-1 library is installed at:
/opt/trinity/lib/libdbus-tqt-1.so /opt/trinity/lib/libdbus-tqt-1.la # libtool file also there
The package config file file for dbus-tqt is here:
/opt/trinity/lib/pkgconfig/dbus-tqt.pc
prefix=/opt/trinity exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include
Name: dbus-tqt-1 Description: D-BUS TQt bindings Version: R14.0.0 Requires: dbus-1 Libs: -L${libdir} -ldbus-tqt-1 -ldbus-1 Cflags: -I${includedir} -I${includedir}/dbus-1.0
So something in cmake is not getting the correct information to where it needs to go. The error message is this:
[ 55%] Building CXX object kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o Linking CXX shared library libtdeinit_kicker.so /usr/bin/ld: cannot find -ldbus-tqt-1 collect2: error: ld returned 1 exit status kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/build.make:108: recipe for target 'kicker/kicker/libtdeinit_kicker.so' failed make[2]: *** [kicker/kicker/libtdeinit_kicker.so] Error 1 CMakeFiles/Makefile2:16442: recipe for target 'kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/all' failed make[1]: *** [kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/all] Error 2 Makefile:116: recipe for target 'all' failed make: *** [all] Error 2
checking the /kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/link.txt:
/usr/bin/c++ -fPIC -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -I/opt/tqt3/include -I/usr/include/tqt -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -g -Wl,--no-undefined -shared -Wl,-soname,libtdeinit_kicker.so -o libtdeinit_kicker.so CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o -L/opt/tqt3/lib -Wl,-whole-archive core/libkicker_core.a -Wl,-no-whole-archive buttons/libkicker_buttons.a ui/libkicker_ui.a ../libkicker/libkickermain.so.1.0.0 /opt/trinity/lib/libtdeabc.so.1.2.0 /opt/trinity/lib/libtdeutils.so.1.2.0 ../../libkonq/libkonq.so.4.2.0 ../../tdmlib/libdmctl.a -lXau interfaces/libkickoffsearch_interfaces.so.0.0.0 -ldbus-tqt-1 -ldbus-1 /opt/trinity/lib/libvcard.so.0.0.0 /opt/trinity/lib/libtderesources.so.1.2.0 /opt/trinity/lib/libtdeparts.so.2.1.0 /opt/trinity/lib/libtdeio.so.14.0.0 /opt/trinity/lib/libtdeui.so.14.0.0 -lfreetype -lfontconfig /opt/trinity/lib/libtdesu.so.14.0.0 -lutil /opt/trinity/lib/libtdewalletclient.so.1.0.1 /opt/trinity/lib/libtdecore.so.14.0.0 /opt/trinity/lib/libDCOP.so.14.0.0 /opt/trinity/lib/libtdefx.so.14.0.0 -ltqt -ltqt-mt -lXrender -lX11 -lc -lz -lidn -lXcomposite -lICE -lSM -lacl -Wl,-rpath,/opt/tqt3/lib:/build/tde-tdebase/src/build/kicker/libkicker:/opt/trinity/lib:/build/tde-tdebase/src/build/libkonq:/build/tde-tdebase/src/build/kicker/kicker/interfaces:
Interestingly it has -L/opt/tqt3/lib but NOT -L/opt/trinity/lib. Down further it lists: -ldbus-tqt-1 -ldbus-1, so if it could find -ldbus-tqt-1 the problem should be solved.
What can I add to CMakeLists.txt to force it to include -L/opt/trinity/lib as the lib dir? /etc/ld.so.conf.d/trinity.conf already contains:
/opt/trinity/lib /opt/trinity/lib/trinity
So from what I'm seeing, it should automatically include it.
On 01/19/2014 05:48 AM, David C. Rankin wrote:
All,
Linking CXX shared library libtdeinit_kicker.so /usr/bin/ld: cannot find -ldbus-tqt-1
This looks like a pkgconfig issue. The dbus-tqt-1 library is installed at:
/opt/trinity/lib/libdbus-tqt-1.so /opt/trinity/lib/libdbus-tqt-1.la # libtool file also there
The package config file file for dbus-tqt is here:
/opt/trinity/lib/pkgconfig/dbus-tqt.pc
prefix=/opt/trinity exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include
Name: dbus-tqt-1 Description: D-BUS TQt bindings Version: R14.0.0 Requires: dbus-1 Libs: -L${libdir} -ldbus-tqt-1 -ldbus-1 Cflags: -I${includedir} -I${includedir}/dbus-1.0
So something in cmake is not getting the correct information to where it needs to go. The error message is this:
[ 55%] Building CXX object kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o Linking CXX shared library libtdeinit_kicker.so /usr/bin/ld: cannot find -ldbus-tqt-1
I attempted to explicitly tell cmake to look in /opt/trinity/lib with the following, but the failure remains:
cmake ${srcdir}/tdebase \ -DCMAKE_INSTALL_PREFIX=${TDEDIR} \ -DCMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH} -L/opt/trinity/lib/" \ <snip>
Any other suggestions?
David C. Rankin wrote:
On 01/19/2014 05:48 AM, David C. Rankin wrote:
Linking CXX shared library libtdeinit_kicker.so /usr/bin/ld: cannot find -ldbus-tqt-1
This looks like a pkgconfig issue. The dbus-tqt-1 library is installed at:
/opt/trinity/lib/libdbus-tqt-1.so /opt/trinity/lib/libdbus-tqt-1.la # libtool file also there
The package config file file for dbus-tqt is here:
/opt/trinity/lib/pkgconfig/dbus-tqt.pc
prefix=/opt/trinity exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include
Name: dbus-tqt-1 Description: D-BUS TQt bindings Version: R14.0.0 Requires: dbus-1 Libs: -L${libdir} -ldbus-tqt-1 -ldbus-1 Cflags: -I${includedir} -I${includedir}/dbus-1.0
So something in cmake is not getting the correct information to where it needs to go. The error message is this:
[ 55%] Building CXX object kicker/kicker/CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o Linking CXX shared library libtdeinit_kicker.so /usr/bin/ld: cannot find -ldbus-tqt-1
I attempted to explicitly tell cmake to look in /opt/trinity/lib with the following, but the failure remains:
cmake ${srcdir}/tdebase \ -DCMAKE_INSTALL_PREFIX=${TDEDIR} \ -DCMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH} -L/opt/trinity/lib/" \ <snip>
Any other suggestions?
You should re-run the link with enabled verbosity, to get an idea how the linker gets called. The path may not find its way into the linker command line.
The "-march=x86-64" suggests you build for a 64 bit system. Is the libdbus-tqt-1 also 64 bit?
jbe
On 01/19/2014 07:40 AM, Juergen Beisert wrote:
You should re-run the link with enabled verbosity, to get an idea how the linker gets called. The path may not find its way into the linker command line.
Ok how?
The "-march=x86-64" suggests you build for a 64 bit system. Is the libdbus-tqt-1 also 64 bit?
jbe
Yes,
tde-dbus-1-tqt-14.0.0-1-x86_64.pkg.tar.xz tde-dbus-tqt-14.0.0-1-x86_64.pkg.tar.xz
This sounds like a problem that has been experienced before and was fixed by patching the end of a cmake file, but I do not recall the specifics. Any one recall where/what cmake file is responsible for including libdbus-tqt-1?
The link.txt command makes clear it is not being found:
/usr/bin/c++ -fPIC -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -I/opt/tqt3/include -I/usr/include/tqt -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -include tqt.h -g -Wl,--no-undefined -shared -Wl,-soname,libtdeinit_kicker.so -o libtdeinit_kicker.so CMakeFiles/tdeinit_kicker-shared.dir/dummy.cpp.o -L/opt/tqt3/lib -Wl,-whole-archive core/libkicker_core.a -Wl,-no-whole-archive buttons/libkicker_buttons.a ui/libkicker_ui.a ../libkicker/libkickermain.so.1.0.0 /opt/trinity/lib/libtdeabc.so.1.2.0 /opt/trinity/lib/libtdeutils.so.1.2.0 ../../libkonq/libkonq.so.4.2.0 ../../tdmlib/libdmctl.a -lXau interfaces/libkickoffsearch_interfaces.so.0.0.0 -ldbus-tqt-1 -ldbus-1 /opt/trinity/lib/libvcard.so.0.0.0 /opt/trinity/lib/libtderesources.so.1.2.0 /opt/trinity/lib/libtdeparts.so.2.1.0 /opt/trinity/lib/libtdeio.so.14.0.0 /opt/trinity/lib/libtdeui.so.14.0.0 -lfreetype -lfontconfig /opt/trinity/lib/libtdesu.so.14.0.0 -lutil /opt/trinity/lib/libtdewalletclient.so.1.0.1 /opt/trinity/lib/libtdecore.so.14.0.0 /opt/trinity/lib/libDCOP.so.14.0.0 /opt/trinity/lib/libtdefx.so.14.0.0 -ltqt -ltqt-mt -lXrender -lX11 -lc -lz -lidn -lXcomposite -lICE -lSM -lacl -Wl,-rpath,/opt/tqt3/lib:/build/tde-tdebase/src/build/kicker/libkicker:/opt/trinity/lib:/build/tde-tdebase/src/build/libkonq:/build/tde-tdebase/src/build/kicker/kicker/interfaces:
It has -L/opt/tqt3/lib but NOT -L/opt/trinity/lib.
Where else can I manually tell cmake to add -L/opt/trinity/lib to the link.txt list?
Hi David,
David C. Rankin wrote:
On 01/19/2014 07:40 AM, Juergen Beisert wrote:
You should re-run the link with enabled verbosity, to get an idea how the linker gets called. The path may not find its way into the linker command line.
Ok how?
-print-search-dirs
But it seems you already have the list of params. Sorry for the noise.
jbe