trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: December 2011

Re: [trinity-devel] Autotools package builds

From: Baho Utot <baho-utot@...>
Date: Thu, 15 Dec 2011 17:37:42 -0500

On Thursday 15 December 2011 03:29:14 pm Laurent Dard wrote:
> Le 15/12/2011 01:06, Baho Utot a écrit :
> > On Wednesday 14 December 2011 04:54:56 pm Laurent Dard wrote:
> >> Le 14/12/2011 01:22, Baho Utot a écrit :
> >>> I need some help with the autoconf packages.
> >>>
> >>> When building it finds qt3 and tqtinterface but it keeps failing on
> >>> linking QString and QWidget.  So I think it is missing some library.
> >>> What is weird is that all the libraries are in /opt/trinity/lib and
> >>> /usr/lib.
> >>> ldconfig.so.conf has those paths.
> >>>
> >>> What library are these in.
> >>
> >> They are in Qt3 library libqt-mt (libqt-mt.so.3.3.8) and headers
> >> ($QTDIR/include/qstring.h and $QTDIR/include/qwidget.h).
> >
> > Here is from my build log when running configure
>
> There must be something wrong in your commands.
> How did you configure qt3?

	./configure -prefix /opt/trinity \
			-sysconfdir /etc/qt \
			-fast \
			-qt-gif \
			-system-zlib \
			-platform linux-g++ \
			-plugin-sql-{mysql,psql,sqlite} \
			-plugin-imgfmt-{jpeg,mng,png} \
			-system-{libmng,libjpeg,libpng} \
			-thread \
			-no-exceptions \
			-no-nis \
			-no-stl \
			-no-ipv6 \
			-no-nas-sound \
			-no-tablet
#			-cups \
#			-sm \
>
> > checking for Qt... libraries /opt/trinity/lib, headers
> > /opt/trinity/include using -mt
> > checking for moc... /opt/trinity/bin/moc
>
> That's very unusual.
> Did you really configured qt3 itself with "-prefix=/opt/trinity"?
> That's probably why the build fails.

Yes.   

Why would the build fail?

I have tried using /usr for everything (entire build from start to finish all 
packages) and it still failed.

I have tried to stick to the How to docs on trinity, but I have read that 
everything should be in /opt/trinity except for tqtinterface.

What do you suggest?

I can rebuild all of trinity quite easily, so if I need to change all the 
prefix(s) I can.

>
> Since you installed tqtinterface in /usr, I think qt3 should have been
> installed in the same place:
>   ./configure -prefix /usr -headerdir /usr/include/qt ...
> For details, see:
>   http://www.linuxfromscratch.org/blfs/view/svn/x/qt.html
>   http://cblfs.cross-lfs.org/index.php/Qt3
>
> (When installing qt3 in /opt, it is installed in his own directory.)
>
> Your trinity installation should be working at this stage. Does it?

Yes, I am posting from TDE using kmail (this email)

> Can you run qt programs (designer...)?

It opens but it is a mess

>
> > checking for uic-tqt... /usr/bin/uic-tqt
> > checking whether uic supports -L ... yes
> > checking whether uic supports -nounload ... yes
> > checking if TQt is available... yes
> > checking for tmoc... /usr/bin/tmoc
> > checking for dcopidl... /opt/trinity/bin/dcopidl
> > checking for dcopidl2cpp... /opt/trinity/bin/dcopidl2cpp
> > checking for mcopidl... /opt/trinity/bin/mcopidl
> > checking if Qt needs -ljpeg... no
> > checking for rpath... yes
> > checking for KDE... libraries /opt/trinity/lib, headers
> > /opt/trinity/include checking if UIC has KDE plugins available... yes
> > checking for KDE paths... defaults
> >
> > You see from above that it finds the qt headers and libs
>
> I'm not sure it found something else than references to the directories,
> with pkg-config.
> But I didn't look deep in the configure script.
>

OK

> What is the output of those commands?
>   ls -l /opt/trinity/include/qwidget.h

  ls -l /opt/trinity/include/qwidget.h
-rw-r--r-- 1 root root 34577 Dec 11 16:21 /opt/trinity/include/qwidget.h

>   ls -l /opt/trinity/lib/libqt-mt.*

 ls -l /opt/trinity/lib/libqt-mt.*
-rw-r--r-- 1 root root     801 Dec 11 16:21 /opt/trinity/lib/libqt-mt.la
-rw-r--r-- 1 root root     784 Dec 11 16:21 /opt/trinity/lib/libqt-mt.prl
lrwxrwxrwx 1 root root      17 Dec 11 16:21 /opt/trinity/lib/libqt-mt.so -> 
libqt-mt.so.3.3.8
lrwxrwxrwx 1 root root      17 Dec 11 16:21 /opt/trinity/lib/libqt-mt.so.3 -> 
libqt-mt.so.3.3.8
lrwxrwxrwx 1 root root      17 Dec 11 
16:21 /opt/trinity/lib/libqt-mt.so.3.3 -> libqt-mt.so.3.3.8
-rwxr-xr-x 1 root root 7836332 Dec 11 16:21 /opt/trinity/lib/libqt-mt.so.3.3.8

>   cat /usr/lib/pkgconfig/tqt.pc

cat /usr/lib/pkgconfig/tqt.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include/tqt

tmoc_executable=/usr/bin/tmoc
moc_executable=/opt/trinity/bin/moc
uic_executable=/opt/trinity/bin/uic

Name: TQt
Description: Interface and abstraction library for Qt and Trinity
Version: 3.5.13
Libs: -L${libdir} -ltqt -L/opt/trinity/lib  -lqt-mt
Cflags: -DQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_THREAD_SUPPORT -D_REENTRANT -I/opt/trinity/include -I${includedir} -include 
tqt.h

The Libs line looks like it shows libaries in both /usr/lib 
and /opt/triniy/lib, so it should find both qt3 and tqtinterface correct? 


>   cat /opt/trinity/lib/pkgconfig/qt-mt.pc

cat /usr/lib/pkgconfig/qt-mt.pc

prefix=/opt/trinity
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
qt_config=qt warn_on release incremental link_prl thread nocrosscompiler 
minimal-config small-config medium-config large-config full-config styles 
tools kernel widgets dialogs iconview workspace inputmethod network canvas 
table xml opengl sql release dll thread largefile system-mng system-jpeg 
system-png gif system-zlib bigcodecs x11sm xshape xinerama xcursor xrandr 
xrender xftfreetype xkb inputmethod dylib create_prl link_prl qt warn_on 
depend_includepath qmake_cache x11 x11inc create_libtool create_pc moc x11lib

Name: Qt
Description: Libqt-mt.so.3.3.8 Library
Version: 3.3.8
Libs: -L${libdir} -lqt-mt -L/usr/X11R6/lib -L/usr/X11R6/lib -lz -lGL -lXmu -lXrender -lXrandr -lXcursor -lXinerama -lXft -lfreetype -lfontconfig -lXext -lX11 -lm -lSM -lICE -ldl -lpthread
Cflags: -DQT_SHARED -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -D_REENTRANT -I${includedir}

Notice that I have qt-mt.pc  in /usr/lib/pkgconfig,  I moved it there to try 
to solve this problem.

>
> Can you compile a little program?
>   cat << EOF | gcc --verbose -x c++ - -I/opt/trinity/include
> -L/opt/trinity/lib #include <qapplication.h>
> int main(int argc, char **argv) { QApplication app(argc, argv); return 0; }
> EOF
>

cat << EOF | gcc --verbose -x c++ - -I/opt/trinity/include
 -L/opt/trinity/lib #include <qapplication.h>
  int main(int argc, char **argv) { QApplication app(argc, argv); return 0; }
EOF

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-linux-gnu/4.6.2/lto-wrapper
Target: i686-pc-linux-gnu
Configured 
with: /build/src/gcc-4.6-20111125/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --disable-multilib --disable-libssp --disable-libstdcxx-pch --enable-checking=release
Thread model: posix
gcc version 4.6.2 20111125 (prerelease) (GCC)
COLLECT_GCC_OPTIONS='-v' '-I' '/opt/trinity/include' '-mtune=generic' '-march=pentiumpro'
 /usr/lib/gcc/i686-pc-linux-gnu/4.6.2/cc1plus -quiet -v -I /opt/trinity/include -D_GNU_SOURCE - -quiet -dumpbase - -mtune=generic -march=pentiumpro -auxbase - -version -o /tmp/ccat4q1p.s
GNU C++ (GCC) version 4.6.2 20111125 (prerelease) (i686-pc-linux-gnu)
        compiled by GNU C version 4.6.2 20111125 (prerelease), GMP version 
5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent 
directory "/usr/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/trinity/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../include/c++/4.6.2
 /usr/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../include/c++/4.6.2/i686-pc-linux-gnu
 /usr/lib/gcc/i686-pc-linux-gnu/4.6.2/../../../../include/c++/4.6.2/backward
 /usr/lib/gcc/i686-pc-linux-gnu/4.6.2/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.6.2/include-fixed
 /usr/include
End of search list.
GNU C++ (GCC) version 4.6.2 20111125 (prerelease) (i686-pc-linux-gnu)
        compiled by GNU C version 4.6.2 20111125 (prerelease), GMP version 
5.0.2, MPFR version 3.1.0-p3, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 437f58a575e931cdb258e763fc4b9d9d
<stdin>:1:1: error: stray ‘#’ in program
<stdin>:1:1: error: expected unqualified-id before ‘-’ token

> >> Did you follow the Trinity Build HowTo?
> >
> > 	cd to package sub dir
> > 	source /etc/profile.d/qt3.sh
>
> What is its content?

cat /etc/profile.d/qt3.sh

export QT_XFT=true
QTDIR=/opt/trinity
PATH=${QTDIR}/bin:${PATH:=}
PATH=${PATH%:}
LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH:=}
LD_LIBRARY_PATH=${LD_LIBRARY_PATH%:}
LD_LIBRARY_PATH=/lib:/usr/lib:${LD_LIBRARY_PATH}
export QTDIR PATH LD_LIBRARY_PATH

>
> > 	cp -f "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in"
> > 	cp -f "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh"
> > 	make -f "admin/Makefile.common"
> > 	./configure prefix=/opt/trinity
>
> That's a bit too short, maybe...
>   --sysconfdir=/etc/trinity
>   --disable-rpath
>   --with-extra-libs=/opt/trinity/lib
>   --with-xinerama
>   --enable-closure
>

Yes I know it was but I was just trying to get past the compile errors and 
then I will go back and fix that up

Thank you very much for helping me with this problem.

I am gratefull