From octave-maintainers-request at bevo dot che dot wisc dot edu Fri Dec 13 20:28:43 2002 Subject: Re: Creating a standalone executable From: Andy Adler To: JD Cole cc: Paul Kienzle , Date: Fri, 13 Dec 2002 21:27:30 -0500 (EST) I just tried your test code under cygwin (with 2.1.40) and liboctinterp _is_ a dependency $ mkoctfile --link-stand-alone -loctinterp test.cc g++: unrecognized option `-rdynamic' $ ./a.exe 3.000000e+01 $ mkoctfile --link-stand-alone test.cc g++: unrecognized option `-rdynamic' test.o(.text+0x95): In function `main': /home/adler/test.cc:7: undefined reference to `install_types()' Andy On Fri, 13 Dec 2002, JD Cole wrote: > Paul, > My mistake. I went back and checked the need for -loctinterp, and it > isn't. It didn't make sense to me either. (This was a figment of me > trying to get mode stand-alone app to work. But now I can't repeat the > problem.) As for -lkpathsea, I have compiled octave with the > --enable-shared --enable-dl. Perhaps when these switches are marked, > kpathsea is not being linked in statically. I verified that it is not a > shared library of my stand-alone app using ldd: > > ldd ./a > > liboctave.so => /video_tmp/build/lib/octave-2.1.40/liboctave.so > (0x40018000) > liboctinterp.so => > /video_tmp/build/lib/octave-2.1.40/liboctinterp.so (0x40157000) > libcruft.so => /video_tmp/build/lib/octave-2.1.40/libcruft.so > (0x403c2000) > liblapack.so.3 => /usr/lib/liblapack.so.3 (0x4042e000) > libblas.so.3 => /usr/lib/libblas.so.3 (0x40871000) > libreadline.so.4 => /video_tmp/build_tools/lib/libreadline.so.4 > (0x408bc000) > libncurses.so.5 => /usr/lib/libncurses.so.5 (0x408e7000) > libdl.so.2 => /lib/libdl.so.2 (0x40929000) > libg2c.so.0 => /video_tmp/build_tools/lib/libg2c.so.0 (0x4092d000) > libm.so.6 => /lib/i686/libm.so.6 (0x4094c000) > libgcc_s.so.1 => /video_tmp/build_tools/lib/libgcc_s.so.1 (0x40970000) > libstdc++.so.5 => /video_tmp/build_tools/lib/libstdc++.so.5 (0x40978000) > libc.so.6 => /lib/i686/libc.so.6 (0x40a2d000) > /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) > > > Please note that this compilation only used an extra "-lkpathsea" and NO > "-loctinterp". Which leads me to ask, why liboctinterp is still a > dynamic library dependency. > > -JD > > Paul Kienzle wrote: > > >Can you include -lkpathsea on the mkoctfile line? Those libs > >should be passed directly through to the linker unless there > >is a bug in mkoctfile. > > > >The reason not to include -loctinterp is that liboctave can > >be used without liboctinterp. On the other hand, it doesn't > >hurt to specify -loctinterp even if nothing uses it, does it? > > > >I didn't realize kpathsea was a separate library. I thought > >it was statically linked into liboctave. > > > > > > > > > >