From: Xavier D. <xav...@gm...> - 2009-07-02 19:10:43
|
On Thu, Jul 2, 2009 at 11:31 AM, William S Fulton<ws...@fu...> wrote: > Igor wrote: >> >> Hello, >> >> Can't get octave example compiled with recently released octave-3.2.0. >> Here is the output: >> >> ----------------------------------------------------------------------------------------------------- >> user@garik:/usr/doc/swig-1.3.38/Examples/octave/simple$ swig -octave -c++ >> -o ~/example.cpp example.i >> user@garik:/usr/doc/swig-1.3.38/Examples/octave/simple$ cd >> user@garik:~$ g++ -shared -I/usr/include/octave-3.2.0 -o example.oct >> example.cpp >> example.cpp: In member function 'void octave_swig_type::install_global()': >> example.cpp:1197: error: 'curr_sym_tab' was not declared in this scope >> example.cpp:1197: error: 'link_to_global_variable' was not declared in >> this scope >> example.cpp:1204: error: 'symbol_record' was not declared in this scope >> example.cpp:1204: error: 'sr' was not declared in this scope >> example.cpp:1204: error: 'global_sym_tab' was not declared in this scope >> example.cpp: In function 'void SWIG_Octave_SetModule(void*, >> swig_module_info*)': >> example.cpp:2110: error: 'curr_sym_tab' was not declared in this scope >> example.cpp:2110: error: 'link_to_global_variable' was not declared in >> this scope >> example.cpp: In function 'octave_value_list Fexample(const >> octave_value_list&, int)': >> example.cpp:2600: error: 'curr_sym_tab' was not declared in this scope >> example.cpp:2600: error: 'link_to_global_variable' was not declared in >> this scope >> >> ----------------------------------------------------------------------------------------------------- >> >> I'm using swig-1.3.38, octave-3.2.0, gcc-4.3.3. >> > Igor, I havn't seen a response to this yet. Xavier might have missed it... > he is the Octave maintainer. Probably some changes are needed to support > this newer version or you are compiling this all wrong. Here is a working > version using octave-3.0.1 and swig-1.3.39: Sorry, yes I haven't found the time to look into this yet. From the errors in the original message it seems like some relatively minor changes are needed in the way it binds global variables and other initialization bits. Octave 3.2 adds support for matlab OOP which required substantial changes to symbol table internals. I'll try to have a look at this this weekend. Very likely this will require some configure magic or a switch to toggle between octave <3.2 and >=3.2. Suggestions on what method is preferred would be welcome. Xavier > > william@caracal:~/swig/swig-1.3.39/Examples/octave/simple$ make > make -f ../../Makefile SRCS='example.c' SWIG='../../../preinst-swig' \ > TARGET='example' INTERFACE='example.i' octave > make[1]: Entering directory > `/home/william/swig/swig-1.3.39/Examples/octave/simple' > ../../../preinst-swig -octave example.i > g++ -g -c -fpic example_wrap.cxx -I /usr/include > gcc -g -c -fpic example.c /usr/include > gcc: /usr/include: linker input file unused because linking not done > gcc -shared example.o example_wrap.o -o example.oct > make[1]: Leaving directory > `/home/william/swig/swig-1.3.39/Examples/octave/simple' > william@caracal:~/swig/swig-1.3.39/Examples/octave/simple$ > > There is a stray /usr/include in the compilation of example.c, but that can > be ignored and is fixed in svn. > > William > |