Ok alors dans le détails voici les fichiers, commandes et erreurs que j'ai (et que j'ai testés depuis) :
Le fichier d'interface principal :
Code :
- // tecio interface
- %module tecio
- %{
- %}
- %include ALLOC.i
- %include ARRLIST.i
- [....une quinzaine d'autres include...]
- %include TranslatedString.i
- %include VERSION.i
|
Avec pour chaque fichier *.i :
Code :
- %{
- #include <ARRLIST.h>
- %}
- [...copie du fichier ARRLIST.h]
|
Je lance alors la commande suivante :
Code :
- swig -python -c++ tecio.i
|
Qui me renvoie alors l'erreur :
Code :
- ARRLIST.i:295: Error: Syntax error in input(2).
|
La ligne en question :
Code :
- typedef int (STDCALL *ArrayListItemComparator_pf)(ArrayListItem_u Item1, ArrayListItem_u Item2, ArbParam_t ClientData);
|
Enfin, si je commente cette ligne, swig détecte une nouvelle erreur de syntaxe à la prochaine occurrence de STDCALL, et ainsi de suite (avec une autre fonction TP_IN_OUT aussi je crois...).
Bref j'ai commenté toutes ces lignes à la main vu qu'il n'y en avait qu'une dizaine, j'ai relancé la commande, et la commande swig est bien passée mais avec les warning suivants :
Code :
- TranslatedString.i:193: Warning(362): operator= ignored
- STRUTIL.i:222: Warning(509): Overloaded method EndOfString(char const *) is shadowed by EndOfString(char *) at STRUTIL.i:218.
- TranslatedString.i:176: Warning(503): Can't wrap 'operator std::string' unless renamed to a valid identifier.
|
Là tout content je regarde ce qu'il m'a crée, et j'ai ces 2 fichiers :
Code :
- tecio.py
- tecio_wrap.cxx
|
Ca ne correspond pas tellement au tutorial de swig où il est sensé me créer deux fichiers .c, mais admettons, je tente de compiler le *_wrap.c avec la commande (j'ai essayé gcc et g++):
Code :
- gcc -fpic -I/usr/include/python2.6 -c tecio_wrap.cxx
|
Et là c'est le drame, une avalanche de message d'erreur du genre :
Code :
- [...]
- tecio_wrap.cxx: In function â:
- tecio_wrap.cxx:22495: error: â was not declared in this scope
- tecio_wrap.cxx:22495: error: â was not declared in this scope
- tecio_wrap.cxx:22495: error: expected primary-expression before â token
- tecio_wrap.cxx:22495: error: expected â before numeric constant
- tecio_wrap.cxx:22496: error: â was not declared in this scope
- tecio_wrap.cxx:22496: error: expected â before â
- tecio_wrap.cxx:22509: error: expected type-specifier before â
- tecio_wrap.cxx:22509: error: expected â before â
- [...]
|
Avec toujours ce "â" sur toutes les lignes... Une erreur d'encodage ?
Et également le fichier python *.py que je ne sais pas comment utiliser...
Voilà toute l'histoire, si ça peut vous aider !