Enviado em 30/06/2012 - 16:51h
Olá pessoal, tudo bem? Confesso que há algum tempo não me envolvo em um projeto sério, mas que fiquei tentado a testar a depuração de módulos escritos em C com Swig através do prompt, acreditando ser uma ótima ideia e para poupar tempo e futuramente esforço na fase de prototipagem de novos projetos. Realmente é uma excelente ferramenta. Mas minha surpresa: o mesmo código que roda tinindo no prompt não roda quando executado a partir de um script simples. Qual a razão? Alguém pode me ajudar? Abaixo o código:
INTERFACE
/* File: example.h */
int fact(int n);
IMPLEMENTAÇÃO
/* File: example.c */
#include "example.h"
int fact(int n)
{
return (n <= 0) ? 1 : n * fact(n - 1);
}
SWIG
/* File: example.i */
%module example
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
%include "example.h"
SCRIPT
import _example
if __name__ == "__main__":
print _example.fact(9)
ERRO
./program.py: linha 4: erro de sintaxe próximo do `token' não esperado `('
./program.py: linha 4: ` print _example.fact(9)'
COMPILAÇÃO
gcc -g -fPIC -c -Wall -Werror example.c example.h
swig -python example.i
gcc -g -fPIC -c -Wall -Werror example_wrap.c -I/usr/include/python2.7
gcc -shared example.o example_wrap.o -o _example.so
INTERFACE
/* File: example.h */
int fact(int n);
IMPLEMENTAÇÃO
/* File: example.c */
#include "example.h"
int fact(int n)
{
return (n <= 0) ? 1 : n * fact(n - 1);
}
SWIG
/* File: example.i */
%module example
%{
#define SWIG_FILE_WITH_INIT
#include "example.h"
%}
%include "example.h"
SCRIPT
import _example
if __name__ == "__main__":
print _example.fact(9)
ERRO
./program.py: linha 4: erro de sintaxe próximo do `token' não esperado `('
./program.py: linha 4: ` print _example.fact(9)'
COMPILAÇÃO
gcc -g -fPIC -c -Wall -Werror example.c example.h
swig -python example.i
gcc -g -fPIC -c -Wall -Werror example_wrap.c -I/usr/include/python2.7
gcc -shared example.o example_wrap.o -o _example.so