Abbiamo un fornitore che ci ha fornito una libreria e intestazioni C++, che sto cercando di avvolgere usando SWIG. Sembra che essi sono troppo intelligente da un mezzo con le direttive del preprocessore:Errori SWIG a causa della direttiva preprocessore
// top.h
#define DECLARE_WITH_COMMA(a) a,
e poi
// foo.h
#include "top.h"
#define MY_TYPES(d) \
d(One) \
d(Two) \
d(Three) \
NumElems
enum MyTypes {
MY_TYPES(DECLARE_WITH_COMMA)
};
che è tutto un modo prolisso per dire che quando provo a correre SWIG (versione 2.0 0,4) su "foo.h", ottengo:
foo.h:12: Error: Syntax error in input(1).
Quindi la mia domanda è che cosa sono le opzioni qui, dato che probabilmente non voglio cambiare le intestazioni forniti dal produttore?
Qual è la linea 84? Puoi costruire un caso di test minimale basato sulle intestazioni in questione e pubblicarlo qui? –
Buona idea, ci proverò. – laslowh
Ok, il codice sopra ora rappresenta un caso di test completo. – laslowh