Ich habe versucht, für diesen Fehler online suchen, aber alle Beiträge sind für C++.C kompilieren: collect2: Fehler: ld zurückgegeben 1 Exit-Status
Dies ist die Botschaft:
test1.o: In function
ReadDictionary': /home/johnny/Desktop/haggai/test1.c:13: undefined reference to
CreateDictionary' collect2: error: ld returned 1 exit status make: *** [test1] Error 1
super einfach Code und kann nicht verstehen, was das Problem
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dict.h"
#include "hash.h"
pHash ReadDictionary() {
/* This function reads a dictionary line by line from the standard input. */
pHash dictionary;
char entryLine[100] = "";
char *word, *translation;
dictionary = CreateDictionary();
while (scanf("%s", entryLine) == 1) { // Not EOF
word = strtok(entryLine, "=");
translation = strtok(NULL, "=");
AddTranslation(dictionary, word, translation);
}
return dictionary;
}
int main() {
pHash dicti;
...
jetzt ist dies der Header dict.h
#ifndef _DICT_H_
#define _DICT_H_
#include "hash.h"
pHash CreateDictionary();
...
#endif
und Hier ist das dict.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "hash.h"
#include "dict.h"
pHash CreateDectionary()
{
pHash newDict;
newDict= HashCreate(650, HashWord, PrintEntry, CompareWords, GetEntryKey, DestroyEntry);
return newDict;
}
und wenn Sie wollen, Check hash.h
#ifndef _HASH_H_
#define _HASH_H_
//type defintions//
typedef enum {FAIL = 0, SUCCESS} Result;
typedef enum {SAME = 0, DIFFERENT} CompResult;
typedef struct _Hash Hash, *pHash;
typedef void* pElement;
typedef void* pKey;
//function types//
typedef int (*HashFunc) (pKey key, int size);
typedef Result (*PrintFunc) (pElement element);
typedef CompResult (*CompareFunc) (pKey key1, pKey key2);
typedef pKey (*GetKeyFunc) (pElement element);
typedef void (*DestroyFunc)(pElement element);
...
//interface functions//
#endif
Vielleicht wird es einfacher sein, wenn ich Ihnen die Dateien hier?
Jede Art und Weise, werde ich für Tipps, glücklich sein, wie das Problem
Es ist das gleiche Problem in C und C++, der Linker kann CreateDictionary nicht finden. In Ihrem Fall ist es wahrscheinlich, weil Sie 'CreateDectionary' stattdessen definiert haben ... – Leiaz
können Sie bitte erklären? was ich definiert habe statt was? – JohnnyF
Sie haben einen Tippfehler. Wörterbuch nicht D ** e ** ctionary. – Leiaz