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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage