[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[LI] Possible SOLUTION to LINKING small KDE application ERROR. And HOWTO Install KDevelop 1.0 Beta4.1



Hi

As there was a lot of traffic on the list regarding Compilation problems with 
KDE Apps on Redhat 6.x systems. So I thought why not try one of the 2nd level
beasts of the KDE i.e KDevelop itself. 

	**** KDEVELOP ******

So I downloaded the the Kdevelop 1.0 Beta4.1 source along with the C C++
Reference. The remaining things like the kdelib-devel and qt docs are already
on your RedHat 6.1 system.

To start with one as to note that Redhat 6.1 comes with QT libraries 1.44 (For
compatability with the old KDE apps using the QT 1.xx libraries) and the newer
QT 2.0.1. ( One who uses C++ based libraries might note that in many situations
the binary compatability cann't be maintained with C++ based libraries. In C
if proper care is taken while design the data structures in the library one
can achieve binary compatability to certain extent more easily. Well no
flaming here about c and c++ just a note). 

QT 1.44 is in /usr/lib/qt-1.44/
QT 2.0.1 is in /usr/lib/qt-2.0.1/

( The sequence I specify here is not the proper way of doing the install , one
should  start by reading the INSTALL or README file and then by trying the
./configure --help and passing suitable options to configure script.)

LEARNING STEPS =>

I unzipped the tar.gz and started the ./configure

a) It failed saying QT >=1.42 or < 2.0 needed.  This is because even though QT
1.44 is on the m/c , by default the QTDIR environment variable is set to
QT2.0.1 library path. Which is proper as only the older apps requrie QT1.44

Well you have three solutions here 

a.1) You can use  ./configure --with-qt-dir=/usr/lib/qt-1.44 (found using
--help)

a.2) Change QTDIR to point to qt1.44. ( I won't suggest this as this will
affect globaly and you are intrested in only getting this particular app to
compile and work).

a.3) The autoconf based systems run small code snippets to identify the
components of the system. So if you want you can change these code snippets if
required. The simplest way to do this is to update the configure script
suitably,It will have the code snippet. (However if you want to do it the
proper way you may have to update the acinclude.m4 and then do a make
dist-clean this should update the things properly without you haveing to woryy
about aclocal, autoconf, etc. if I am not wrong), For example In this case you
can if you want change it so that the QT lib < 2.0 limit is removed, However
here I wouldn't suggest this as a lot of things have changes between the QT1.x
and QT2.x libraries. But when installing OTHER SOURCES modifiying the
configure script or the acinclude.m4 is a possible alternative to get things
going. config.log is a good place to check for what caused the error that made
configure script quit in the middle.


b)   Once you have done one of the above steps you can rerun ./configure. This
time it will succeed. However You may note in the messages given by configure
that it says   Qt documentation No, kdelibs documentation  No,etc. These are
things which won't affect the compilation of kdevelop so either you can fix
them now itself which I will explain below  or else you can go ahead and finish
the compile and install, and later when running the kdevelop , using the
kdevelop setup option one can rectify it.

	****************
NOTE: QT documentation is in /usr/doc/[qt-devel-2.0.1 or qt1x-devel-1.44] I
would suggest using the qt-devel-2.0.1 documentation here as You will be
interested in using the latest library.

	Similarly KDElibs documentation is in /usr/doc/kdelibs-devel-1.1.2.

	****************

b.1) if you check the o/p of ./configure --help you will find entries like 
  --with-qtdoc-dir=DIR     where the Qt documentation is installed
  --with-kdelibsdoc-dir=DIR   where the kdelibs documentation is installed
  --with-kdocindex-dir=DIR    where the kdoc index files are
  --enable-docbase        enable Debian docbase support
  --enable-kdoc2        enable kdoc2 support                                    

b.2) so also pass --with-qtdoc-dir=/usr/doc/qtxx-devel-xxxxx(which ever you
want here) and --with-kdelibsdoc-dir=/usr/doc/kdelibs-devel-1.1.2 to configure.


Thus the actual parameters to configure are :

 ./configure --with-qt-dir=/usr/lib/qt-1.44 --with-qtdoc-dir=/usr/doc/qt-devel-2.0.1 --with-kdelibsdoc-dir=/usr/doc/kdelibs-devel-1.1.2 

Note: if you want to install the files to your own set of directories and not
the default (/usr) in redhat 6.1 then you can use the --prefix or
--prefixxxxxxx options available with configure script.


************ system fails at linking a small KDE application! *************

PROBLEM ==>

When trying the a.3) step above (i.e modifying the code snippet in configure so
that the QT < 2 limit is removed). I noticed one interesting fact. The
configure script started giving me this "system fails at linking a small KDE
application! ". ERROR. which many people in the list had got with other KDE
sources.

POSSIBLE REASON ==>
I am short of time now. However from this behaviour and by looking into the
config.log what I found was that the code snippet used to check the presence of
kde in your system uses the QT1.x library syntax and variables where as the
library its trying to link with is the 2.0.1 library. And also as in ALL
PROBABILITY the KDE APP you are trying to compile also requries the qt 1.x
library so I would SUGGEST THIS:

SOLUTION ==>
If you get this error then its most probably because configure has decided to
use the 2.0.1 library that came with the RedHat 6.1 and not the QT 1.44 library
thats requried by the Source code of the KDE APP you are trying to compile. So

a)  check if you can use the "--with-qt-dir" option or equivalent with the
configure script  so that you specify it to use the 1.44 libraries.

or else 

b) try setting the QTDIR enviornment variable to 1.44 TEMPorarily for
compiling the KDE APP source code.


---------
Keep :-)
HanishKVC
--------------------------------------------------------------------
The Linux India Mailing List Archives are now available.  Please search
the archive at http://lists.linux-india.org/ before posting your question
to avoid repetition and save bandwidth.