Page 1 of 1

Troubles installing on ubuntu 8.10

Posted: Tue Feb 03, 2009 4:47 pm
by ignatius
I'm trying to compile sesarray 2.0.5 from source, on Ubuntu 8.10. I have qt installed and am using gcc. Outputs from the -version checks:

QMake version 2.01a
Using Qt version 4.4.3 in /usr/lib
lupdate version 4.4.3

gcc (Ubuntu 4.3.2-1ubuntu12) 4.3.2

I'm executing ./configure with no options specified. And then "make" which runs along just fine for a good while and eventually gags with the output pasted below. It seems to have trouble with f2c. I see that sesarray comes with these libraries (?), but it seems that the compile is looking to /usr/lib for the version is uses. Perhaps a different version? According to Synaptic, I'm working with libf2c2, version 20061008-4. It doesn't offer me any other versions to try to install. My /usr/lib/ is a symbolic link to (same directory).

Any suggestions would be much appreciated. And thank you for the code.

g++ -rdynamic -o ../../../bin/release/geopsy ../.obj/release/main.o ../.obj/release/qtbagc.o ../.obj/release/qtbcorrelations.o ../.obj/release/qtbcutsignal.o ../.obj/release/qtbdecimateamplitude.o ../.obj/release/qtbexportfiletype.o ../.obj/release/qtbexportpick.o ../.obj/release/qtbfileview.o ../.obj/release/qtbgeopsyabout.o ../.obj/release/qtbgeopsyaboutdialog.o ../.obj/release/qtbgeopsymainwindow.o ../.obj/release/qtbgeopsymainwindowaction.o ../.obj/release/qtbgraphicwindow.o ../.obj/release/qtbgroupproperties.o ../.obj/release/qtbgroupview.o ../.obj/release/qtbmagnifiersignal.o ../.obj/release/qtbmapwindow.o ../.obj/release/qtbpreferences.o ../.obj/release/qtbrotatecomponents.o ../.obj/release/qtbsetheader.o ../.obj/release/qtbsettablefields.o ../.obj/release/qtbsignaldisplay.o ../.obj/release/qtbsignaltabledelegate.o ../.obj/release/qtbsignaltableitem.o ../.obj/release/qtbsignaltableview.o ../.obj/release/qtbsigselectiondnd.o ../.obj/release/qtbsortkeys.o ../.obj/release/qtbsourcecoordinates.o ../.obj/release/qtbstalta.o ../.obj/release/qtbstationcoordinates.o ../.obj/release/qtbsubtractgroupitem.o ../.obj/release/qtbsubtractsignals.o ../.obj/release/qtbsuppressdc.o ../.obj/release/qtbtablewindow.o ../.obj/release/qtbtaper.o ../.obj/release/qtbtoolfactory.o ../.obj/release/qtbviewparameditor.o ../.obj/release/moc_qtbagc.o ../.obj/release/moc_qtbcorrelations.o ../.obj/release/moc_qtbdecimateamplitude.o ../.obj/release/moc_qtbexportfiletype.o ../.obj/release/moc_qtbexportpick.o ../.obj/release/moc_qtbfileview.o ../.obj/release/moc_qtbgeopsyabout.o ../.obj/release/moc_qtbgeopsyaboutdialog.o ../.obj/release/moc_qtbgeopsymainwindow.o ../.obj/release/moc_qtbgraphicwindow.o ../.obj/release/moc_qtbgroupproperties.o ../.obj/release/moc_qtbgroupview.o ../.obj/release/moc_qtbmapwindow.o ../.obj/release/moc_qtbpreferences.o ../.obj/release/moc_qtbrotatecomponents.o ../.obj/release/moc_qtbsetheader.o ../.obj/release/moc_qtbsettablefields.o ../.obj/release/moc_qtbsignaltabledelegate.o ../.obj/release/moc_qtbsignaltableitem.o ../.obj/release/moc_qtbsigselectiondnd.o ../.obj/release/moc_qtbsortkeys.o ../.obj/release/moc_qtbsourcecoordinates.o ../.obj/release/moc_qtbstalta.o ../.obj/release/moc_qtbstationcoordinates.o ../.obj/release/moc_qtbsubtractsignals.o ../.obj/release/moc_qtbsuppressdc.o ../.obj/release/moc_qtbtablewindow.o ../.obj/release/moc_qtbtaper.o ../.obj/release/moc_qtbtoolfactory.o ../.obj/release/moc_qtbviewparameditor.o ../.obj/release/qrc_geopsy.o -L/usr/lib -Wl,-rpath,/usr/local/sesarray/sesarray-src-2.0.5/lib/release -L/usr/local/sesarray/sesarray-src-2.0.5/lib/release -lqtbtools -lqtbguitools -lscifigs -lgeopsycore -lgeopsygui -lqtbfortran -lfftw3 -lf2c -lQtGui -lQtCore -lpthread
/usr/lib/ undefined reference to `MAIN__'
collect2: ld returned 1 exit status
make[2]: *** [../../../bin/release/geopsy] Error 1
make[2]: Leaving directory `/usr/local/sesarray/sesarray-src-2.0.5/src/geopsy/src'
make[1]: *** [first] Error 2
make[1]: Leaving directory `/usr/local/sesarray/sesarray-src-2.0.5/src/geopsy'
make: *** [geopsy] Error 2

Posted: Tue Feb 03, 2009 6:02 pm
by admin
You have to force the link to libf2c shipped with sesarray. One way to do it is to replace '-lf2c' by the path to libf2c inside sesarray.

Code: Select all

cd src/geopsy
mv configure configure.old
cat configure.old | sed "s/-lf2c/..\/..\/..\/lib\/release\/libf2c.a/g" > configure
make config

I'm currently working on sesarray 2.1.0 which drastically simplifies these dependencies and makes the source package lighter, with finally better integration with system libraries (fftw, lapack,...). Also, it will be soon available as a binary package for Ubuntu and Debian (a beta test was made for Ubuntu 8.04 only). So you'll be able to add it to Synaptic and get regular updates automatically from the package manager itself. Other Linux distributions may follow, but Ubuntu/Debian offered the simplest tools to build packages.

Posted: Tue Feb 03, 2009 8:32 pm
by ignatius

That pretty much took care of it. I also ended up having to "hide" the libf2c stuff from the compiler because it still wanted to go to /usr/lib/ for some reason. So I moved all the *f2c* stuff in /usr/lib to a temporary space, compiled geopsy, and then put it back. The compile went fine (a warning regarding wanting the .so file, but no error) and geopsy runs. I haven't played with it enough yet to be sure all's well but so far it looks good.

Please let me know if there's anything obviously wrong with this approach.

Posted: Wed Feb 04, 2009 8:06 am
by admin
I think that's all fine. If the compile reached the end without error, you must have a working geopsy.

Posted: Wed Feb 04, 2009 6:21 pm
by ignatius
Great. Thanks for the help.

By the way, the package install will be a nice option.