Veröffentlicht 28. September 201014 j 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ß
28. September 201014 j Wenn du eine Funktion als static deklarierst, ist sie nur in der Übersetzungseinheit (.c-Datei) verfügbar, in der sie definiert ist.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.