C - Undefinierte Symbole für die Architektur x86_64 beim Kompilieren unter Mac OSX Lion
Ich bekomme einige Probleme beim Kompilieren einer sehr sehr einfachen name.c-Datei unter Mac OSX Lion.
Jetzt habe ich begonnen, den Harvard CS50-Kurs auf cs50.net zu verfolgen. Ich bin nicht ganz neu in der Programmierung, aber ich war gespannt, wie dieser Kurs unterrichtet wurde.
Dies ist die Quelle von name.c:
#include <stdio.h>
#include <cs50.h>
int
main(void)
{
printf("State your name:\n");
string name = GetString();
printf("O hai, %s!\n", name);
return 0;
}
Wie Sie sehen, wird diese Bibliothek benötigt:https://manual.cs50.net/CS50_Library.
Wenn ich es kompiliere, passiert Folgendes:
Undefined symbols for architecture x86_64:
"_GetString", referenced from:
_main in name-vAxcar.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [name] Error 1
Wenn ich dieselbe GetString () cs50.c-Funktion in meiner Quelldatei verwende, funktioniert dies perfekt:
#include <stdio.h>
#include <string.h>
#include <float.h>
#include <limits.h>
#include <stdbool.h>
#include <stdlib.h>
typedef char *string;
string GetString(void);
int
main(void)
{
printf("State your name:\n");
string name = GetString();
printf("O hai, %s!\n", name);
}
string
GetString(void)
{
// CODE
}
Warum passiert das? Ich habe die Bibliothek wie auf dem obigen Link angegeben installiert. Ich habe überprüft, dass sich sowohl cs50.h als auch libcs50.a in / usr / local / include bzw. / usr / local / lib befinden.
Vielen Dank im Voraus für Ihre Hilfe.