FreeBSD Port for kdevelop [...]

Will Andrews andrews at TECHNOLOGIST.COM
Sun Nov 7 20:50:28 GMT 1999


Hi, I've been attempting to create a port of kdevelop since 1.0b1. August 12th
is the date I first created the port, but 1.0b1 was around before that; since I
have as of yet been unable to successfully compile the program after about 150
or 200 different methods (no, I'm not exaggerating), I've decided to send this
in.

I've finally worked out some bugs. It seems that the configure script has a
large number of syntax errors, among other glaring problems. I'm surprised that
(apparently) it works for you guys. I can never seem to get it to recognize
configure arguments such as --with-qt-dir=/usr/X11R6
--with-qt-includes=/usr/X11R6/include/X11/qt --with-qt-libraries=/usr/X11R6/lib
--prefix=/usr/local et cetera. KDE stuff is in /usr/local while Qt's in
/usr/X11R6. The arguments do not seem to be getting passed through to
the parts of the script that actually does the checking.

Now, I've been able to get kdevelop to compile, with gcc 2.95.2
(compiler is g++295), Qt 1.42, KDE 1.1.2, gmake 3.77, perl 5.005_03, and flex
2.5.4. Gmake successfully finishes the compile:

[a line or two of the compiling (just to see -I's, etc.):]
g++295 -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include
-I/usr/X11R6/include/X11/qt  -I/usr/X11R6/include    -O2 -Wall -c
caddnewtranslationdlg.moc.cpp
/usr/X11R6/bin/moc ./cdocbrowser.h -o cdocbrowser.moc.cpp
g++295 -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include
-I/usr/X11R6/include/X11/qt  -I/usr/X11R6/include    -O2 -Wall -c
cdocbrowser.moc.cpp
/usr/X11R6/bin/moc ./ckdevelop.h -o ckdevelop.moc.cpp
g++295 -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/local/include
-I/usr/X11R6/include/X11/qt  -I/usr/X11R6/include    -O2 -Wall -c
ckdevelop.moc.cpp

[and now, the linking:]

/bin/sh ../libtool --silent --mode=link g++295  -O2 -Wall -s -o kdevelop
-L/usr/local/lib  -L/usr/X11R6/lib -rpath /usr/local/lib -rpath
/usr/X11R6/lib -rpath /usr/X11R6/lib  klistview.o ckdevelop.o main.o cn        
ewfiledlg.o coutputwidget.o ckdevelop_init.o ctabctl.o ckdevelop_noslot.o
ckdevelop_project.o cclassview         .o ceditwidget.o ckdevsetupdlg.o
ckdevelop_classview.o cprjoptionsdlg.o ckappwizard.o crealfileview.o cl        
ogfileview.o cdocbrowser.o cproject.o kswallow.o cgeneratenewfile.o
doctreeview.o cnewclassdlg.o cfilepr         opdlg.o caddexistingfiledlg.o
cgrouppropertiesdlg.o cupdatekdedocdlg.o ccreatedocdatabasedlg.o ctoolclas     
   s.o cdoctreepropdlg.o ckdevelop_whatsthis.o cfinddoctextdlg.o kstartuplogo.o
ktipofday.o ckdevinstall.o          ckdevelop_kdlginit.o caddclassmethoddlg.o
caddclassattributedlg.o cclasstooldlg.o cclasstreehandler.o ct        
reehandler.o ctreeview.o cerrormessageparser.o cexecuteargdlg.o
ccvaddfolderdlg.o klangcombo.o caddnewtr         anslationdlg.o grepdialog.o
ctoolsconfigdlg.o cbugreportdlg.o cclasstooltreeview.o cmakemanualdlg.o cmak   
     emanualdlgdata.o ckdevaccel.o doctreeview.moc.o ctoolsconfigdlg.moc.o
cdoctreepropdlg.moc.o cclasstooltr         eeview.moc.o cupdatekdedocdlg.moc.o
cexecuteargdlg.moc.o ceditwidget.moc.o ctreeview.moc.o caddexistingf        
iledlg.moc.o kstartuplogo.moc.o kswallow.moc.o cgrouppropertiesdlg.moc.o
cbugreportdlg.moc.o cclassview.         moc.o ckdevsetupdlg.moc.o
cmakemanualdlg.moc.o coutputwidget.moc.o ccreatedocdatabasedlg.moc.o cnewclass 
       dlg.moc.o cfilepropdlg.moc.o klangcombo.moc.o ctabctl.moc.o
grepdialog.moc.o ckappwizard.moc.o clogfilev         iew.moc.o klistview.moc.o
crealfileview.moc.o ckdevinstall.moc.o cnewfiledlg.moc.o ktipofday.moc.o caddc 
       lassattributedlg.moc.o cclasstooldlg.moc.o cprjoptionsdlg.moc.o
cfinddoctextdlg.moc.o ccvaddfolderdlg.mo         c.o caddclassmethoddlg.moc.o
caddnewtranslationdlg.moc.o cdocbrowser.moc.o ckdevelop.moc.o  ./vc/libvc.a    
     ./print/libprint.a ./gfxview/libgfxview.a ./kdlgedit/libkdlgedit.a
./kwrite/libkwrite.a ./classparser/l         ibclassparser.a
./classwizard/libclasswizard.a -lkfile -lkfm -lkspell -lkhtmlw -lkimgio -ljpeg
-ltiff -ljpeg -lz  -lqt  -lX11  -lm -ljscript -lkdeui -lkdecore -lqt
-lXext -lX11  -lfl 

However, a large number of linking errors occur (I was forced to remove -ldl
and -ldb because there are no such libraries in FreeBSD). I will paste only a
few of these errors (because there are so many, I figured a large number of
them were redundant (i.e., were linked to the same library). I only need to
find out which libraries they belong to so I can figure out where to get them
and how to get them introduced into the build.. (I'm a relatively competent but
inexperienced C++ programmer):

klistview.o: In function `QArrayT<char> type_info function':
klistview.o(.gnu.linkonce.t.__tft7QArrayT1Zc+0x16): undefined reference to
`QGArray type_info functi             on'
klistview.o(.gnu.linkonce.t.__tft7QArrayT1Zc+0x1e): undefined reference to
`QGArray type_info node'
klistview.o: In function `KListViewItem type_info function':

ckdevelop.o(.rodata+0x2f00): undefined reference to `QGList type_info node'
ckdevelop.o: In function `QListT<char> type_info function':
ckdevelop.o(.gnu.linkonce.t.__tft6QListT1Zc+0x16): undefined reference to
`QGList type_info function             '
ckdevelop.o(.gnu.linkonce.t.__tft6QListT1Zc+0x1e): undefined reference to
`QGList type_info node'

main.o: In function `main':
main.o(.text+0x55e): undefined reference to `KWMModuleApplication virtual table'
main.o(.text+0x6ef): undefined reference to `KWMModuleApplication virtual table'
main.o(.rodata+0x434): undefined reference to `QGList type_info node'

ckdevelop_init.o(.gnu.linkonce.t.__tft6QListT1Z9TEditInfo+0x16): undefined
reference to `QGList type             _info function'
ckdevelop_init.o(.gnu.linkonce.t.__tft6QListT1Z9TEditInfo+0x1e): undefined
reference to `QGList type             _info node'

ckdevelop_noslot.o(.rodata+0xb34): undefined reference to `QGList type_info
node'

ckdevelop_project.o(.rodata+0xc34): undefined reference to `QGList type_info
node'

cclassview.o(.text+0x2a99): undefined reference to `QPushButton virtual table'
cclassview.o(.text+0x2b00): undefined reference to `QPushButton::QPaintDevice
virtual table'
cclassview.o(.text+0x2b07): undefined reference to `QPushButton virtual table'
cclassview.o(.text+0x2b25): undefined reference to `QPushButton::QPaintDevice
virtual table'

ckdevsetupdlg.o(.rodata+0x1410): undefined reference to `QGList type_info node'
ckdevsetupdlg.o: In function `QDictT<KKeyEntry> type_info function':
ckdevsetupdlg.o(.gnu.linkonce.t.__tft6QDictT1Z9KKeyEntry+0x16): undefined
reference to `QGDict type_             info function'

caddexistingfiledlg.moc.o(.rodata+0x94): undefined reference to `QDialog
type_info node'
caddexistingfiledlg.moc.o: In function `CAddExistingFileDlg type_info function':
caddexistingfiledlg.moc.o(.gnu.linkonce.t.__tf19CAddExistingFileDlg+0x16):
undefined reference to `Q

cgrouppropertiesdlg.moc.o(.rodata+0x4c): undefined reference to `QDialog
type_info node'
cgrouppropertiesdlg.moc.o: In function `CGroupPropertiesDlg type_info function':

caddclassattributedlg.moc.o(.gnu.linkonce.t._$_21CAddClassAttributeDlg+0x3c):
undefined reference to              `QPushButton::QPaintDevice virtual table'
caddclassattributedlg.moc.o(.gnu.linkonce.t._$_21CAddClassAttributeDlg+0x46):
undefined reference to              `QPushButton virtual table'
caddclassattributedlg.moc.o(.gnu.linkonce.t._$_21CAddClassAttributeDlg+0x64):
undefined reference to              `QPushButton::QPaintDevice virtual table'

./kdlgedit/libkdlgedit.a(kdlgeditwidget.o)(.rodata+0x1194): undefined reference
to `QGList type_info              node'
./kdlgedit/libkdlgedit.a(kdlgpropwidget.o)(.rodata+0x2e7c): undefined reference
to `QGList type_info              node'
./kdlgedit/libkdlgedit.a(kdlgpropwidget.o): In function `AdvListViewItem
type_info function':
kdlgpropwidget.o(.gnu.linkonce.t.__tf15AdvListViewItem+0x16): undefined
reference to `QListViewItem              type_info function'
kdlgpropwidget.o(.gnu.linkonce.t.__tf15AdvListViewItem+0x1e): undefined
reference to `QListViewItem              type_info node'

[lots and lots of others]

Some of these appear to be in various KDE/Qt libraries. Others look like
they're part of the main kdevelop code (but I think I'm wrong on this
particular thought). I really can't put my finger on why it's not linking,
since the appropriate linking -L's are passed to g++295/libtool...:

<2 2729-0> (99-11-07 15:48:31) [will at shadow ~]% ll /usr/local/lib/libkde*
-rwxr-xr-x  1 root  wheel     531 Nov  6 14:51 /usr/local/lib/libkdecore.la*
lrwxr-xr-x  1 root  wheel      15 Nov  6 14:51 /usr/local/lib/libkdecore.so@ ->
libkdecore.so.2
-rwxr-xr-x  1 root  wheel  465883 Nov  6 14:51 /usr/local/lib/libkdecore.so.2*
-rwxr-xr-x  1 root  wheel     523 Nov  6 14:51 /usr/local/lib/libkdeui.la*
lrwxr-xr-x  1 root  wheel      13 Nov  6 14:51 /usr/local/lib/libkdeui.so@ ->
libkdeui.so.2
-rwxr-xr-x  1 root  wheel  863096 Nov  6 14:51 /usr/local/lib/libkdeui.so.2*

<2 2730-0> (99-11-07 15:48:37) [will at shadow ~]% ll /usr/X11R6/lib/libqt*
lrwxr-xr-x  1 root  wheel       19 Aug 17 13:43 /usr/X11R6/lib/libqt.a@ ->
/usr/X11R6/libqt.so
lrwxr-xr-x  1 root  wheel       25 Nov  6 03:56 /usr/X11R6/lib/libqt.so@ ->
/usr/X11R6/lib/libqt.so.2
-r--r--r--  1 root  wheel  1601703 Nov  6 03:56 /usr/X11R6/lib/libqt.so.2
lrwxr-xr-x  1 root  wheel       26 Nov  7 01:42 /usr/X11R6/lib/libqt2.so@ ->
/usr/X11R6/lib/libqt2.so.2
-r--r--r--  1 root  wheel  4063762 Nov  7 01:42 /usr/X11R6/lib/libqt2.so.2

[Yes, I have Qt 2.02 installed as well, but it is not being used here.]

Frankly, I think the kdevelop configure script needs a lot of cleaning up..
it's one of the most bizarre shell scripts (GNU configure, that is... ;) I've
seen around these last few years, but kdevelop's version is more so.

I am really interested in getting this to work under FreeBSD. Anyone who can
help please reply ASAP. TIA!

--
Will Andrews <andrews at technologist.com>
GCS/E/S @d- s+:+>+:- a--->+++ C++ UB++++ P+ L- E--- W+++ !N !o ?K w---
?O M+ V-- PS+ PE++ Y+ PGP+>+++ t++ 5 X++ R+ tv+ b++>++++ DI+++ D+ 
G++>+++ e->++++ h! r-->+++ y?




More information about the KDevelop mailing list