Outils pour utilisateurs

Outils du site


lib:swig

Ceci est une ancienne révision du document !


Utilisation de base

libmod.i
// Nom de la librairie de sortie
%module mod
 
%{
// Inclure tous les entêtes à convertir
#include "file1.h"
#include "file2.h"
#include "file3.h"
}
 
// Inclure tous les entêtes à convertir en commençant par un %
%include "file1.h"
%include "file2.h"
%include "file3.h"

template

Pour les template, il faut les définir manuellement entre le %include qui le défini et le %include qui l'utilise. Il y a donc un problème si le template est défini et utilisé dans le même entête.

libmod.i
%module mod
 
%{
#include "file1.h"
#include "file2.h"
}
 
// file1.h contient une classe file1_classe<T>
%include "file1.h"
 
%template(file1_classe_int) file1_classe<int>;
 
// file2.h utilise une implémentation de file1_classe<int>.
%include "file2.h"

Can't wrap 'xxx' unless renamed to a valid identifier.

C'est le cas des opérateurs operator !=. Ajouter en début de fichier après le %module …

%rename(operator_not_equal) operator!=;
lib/swig.1526239693.txt.gz · Dernière modification : 2018/05/13 21:28 de root