[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

.oct functions and shared libraries

From: Stef Pillaert
Subject: .oct functions and shared libraries
Date: Mon, 07 Jun 1999 12:32:12 +0200


(this probably isn't really an octave question, and more a "gcc" question,

I have 2 .oct functions, created in .cc files ( and They
are both perfectly usable as stand-alone .oct functions, but in I
call I do this by declaring (in 
octave_value_list Fsub (const octafve_value_list& args, int nargout);

Next I compile like this:

rm sub.oct
ar rc libtest.a sub.o

rm main.oct
ar rc libtest.a main.o

mkoctfile sub.o -L. -ltest
mkoctfile main.o -L. -ltest

All this works just fine. There should be cleaner ways to do this, but it
is (to me ) an easy way to compile everything to .o files, and I put them
all in the libtest.a library, so I can also use 'main.o' for later
functions. In fact, I do this in a (very simple) Makefile, where I treat
all .cc files the same way, and I don't have to worry too much about
dependencies: when the libtest.a changes, I just relink all my functions
against it, as in the last 2 lines above...)

**1: if someone has suggestions on this way of working, please do. I'm not
very familiar with c++ and linking-libraries-compiling-...

**2: more important: can I do this with a shared library ( How
do I do this? Just calling 'gcc -shared -o main.o sub.o' instead
of the 'ar'-calls, and leaving all the rest to what it is, results in
errors while running the function in octave ("error in loading shared
libraries: main.oct : undefined symbol : Fsub__FRC17octave_value_listi").
However, 'nm' shows me Fsub__FRC17octave_value_listi . Can
someone point me in the right direction? Should there be something added to
my source-code perhaps?

**3 Is there a way of creating a dynamic library with just the .oct-files
themselves in it? So that I just need this library in my path, and not all
the seperate .oct files? Or are just the .o files enough?
How do I tell octave to look for functions in this library?

These questions probably are more gcc related, but I spent a few days
looking for help on this in other places, without result...


Octave is freely available under the terms of the GNU GPL.  To ensure
that development continues, see
Instructions for unsubscribing:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]