Hali! Egy ilyen .i fájllal működik:
%module example
%{
extern double Foo;
extern void print_Foo();
extern int gcd( int x, int y );
%}
extern double Foo;
extern void print_Foo();
extern int gcd( int x, int y );
A [/code]module example[code] rész kerül bele a wrapper C-be. Így hiszi el a fordító, hogy lesz majd - legkésőbb linkelésnél - valamelyik modulban egy ilyen változó, ilyen függvény, stb.
A függvényfejlécek elől talán elhagyható az extern, mert azok úgyis csak fejlécek. A változóknál viszont kell.
Ha több modulban van ugyanaz a változó (extern nélkül), az linkelési hiba (ezért .h-ba se szoktunk változót rakni). Ha egyikben sincs, mindenhol csak extern van, az is linkelési hiba (szerintem Nálad ez történt).