SpecialAgentUwe Geschrieben 28. September 2010 Geschrieben 28. September 2010 Hallo Leute, brauche wieder mal eure Hilfe. Ich habe mir in einem header (StopwordTokenizer.h) folgende Funktion deklariert: #ifndef STOPWORDTOKENIZER_H_ #define STOPWORDTOKENIZER_H_ #include "sqlite3.h" #include "tokenizer.h" #include <stdio.h> #include <string.h> #include <ctype.h> #include <stdlib.h> ... static void filter( char *input, char *langCode, int minFreq ); ... #endif Und in StopwordTokenizer.c steht unter anderem: #include "StopwordTokenizer.h" ... static void filter( char *input, char *langCode, int minFreq ){ stopword_tokenizer *t; t = (stopword_tokenizer *) sqlite3_malloc(sizeof(*t)); stopword_tokenizer_cursor *c; c = (stopword_tokenizer_cursor *) sqlite3_malloc(sizeof(*c)); initFilter(input, langCode, minFreq, c, t); char *pOut; int *pnBytes; int *piStartOffset; int *piEndOffset; int *piPosition; while(tokenize(pOut, pnBytes, piStartOffset, piEndOffset, piPosition, c, t, EXTERNAL) == 0) { printf("%i %s \n",c->iToken, c->pToken); } } ... Und schließlich in der aufrufenden Datei: #include "StopwordTokenizer.h" ... int main(void) { filter("Am Kallinenberg", "DEU_deu", 100); return 0; } Aber er sagt mir: "undefined reference to `filter'". Hab ich irgendein grundlegendes Verständnisproblem? Danke im Voraus! Gruß Zitieren
Klotzkopp Geschrieben 28. September 2010 Geschrieben 28. September 2010 Wenn du eine Funktion als static deklarierst, ist sie nur in der Übersetzungseinheit (.c-Datei) verfügbar, in der sie definiert ist. Zitieren
SpecialAgentUwe Geschrieben 28. September 2010 Autor Geschrieben 28. September 2010 Aha...jetzt läufts. Danke! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.