Comstackr les correctifs orthographiques pour sqlite3

J’avais besoin de vouloir construire “est-ce que tu veux dire ça?” fonction sur mon site. J’utilise sqlite3 et j’ai appris que je pouvais utiliser le module épeler pour commander des tables via Levenstein.

J’ai téléchargé le code source de sqlite3 et le fichier orthographié.c (c’est à l’intérieur de / ext / misc /) comme ceci:

gcc -shared -fPIC -Wall -I/tmp/sqlite-src-3071700/ spellfix.c -o spellfix 

Il comstack avec succès mais quand je le charge dans sqlite:

 sqlite> .load ./spellfix 

Je reçois cette erreur:

 Error: ./spellfix: undefined symbol: sqlite3_extension_init 

J’ai vraiment très peu de connaissances sur la compilation de programmes c. Ai-je commis une erreur de compilation ou est-il arrivé quelque chose d’autre? Que devrais-je faire?

Il semble que la fonction sqlite init est manquante. Il y a une discussion ici http://sqlite.1065341.n5.nabble.com/SQLite-version-3-7-16-td67776.html

J’ai ajouté le code suivant en haut.

 static int spellfix1Register(sqlite3 *db); int sqlite3_extension_init(sqlite3 *db, char ** pxErrMsg, const sqlite3_api_routines *pApi){ SQLITE_EXTENSION_INIT2(pApi); return spellfix1Register(db); } 

J’avais également besoin des éléments suivants, car je ne pouvais pas extraire les en-têtes de la fonction sqlite3_ssortingcmp sans créer de problèmes supplémentaires:

 int sqlite3_ssortingcmp(const char *zLeft, const char *zRight){ return strcasecmp(zLeft, zRight); } 

Et avait besoin de ça aussi:

 #define SQLITE_CONSTRAINT_NOTNULL (SQLITE_CONSTRAINT | (5<<8)) 

Ensuite, il a compilé et semble fonctionner correctement.