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ß
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.
SpecialAgentUwe Geschrieben 28. September 2010 Autor Geschrieben 28. September 2010 Aha...jetzt läufts. Danke!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden