( Kiskübi | 2011. 02. 24., cs – 13:43 )

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).