C - les symboles non définis pour l'architecture x86_64 lors de la compilation sous Mac OSX Lion

Je reçois quelques problèmes à la compilation d'un très très simple nom.c fichier sur Mac OSX Lion.

Maintenant, j'ai commencé à suivre Harvard CS50 cours sur cs50.net. Je ne suis pas totalement nouveau pour la programmation, mais j'étais curieux sur la façon dont ce cours a été enseigné.

C'est la source de nom.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;
}

Comme vous pouvez le voir, elle a besoin de la bibliothèque: https://manual.cs50.net/CS50_Library.

Maintenant, quand je compile, ce qui se passe:

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

Si j'utilise le même GetString() cs50.c de la fonction à l'intérieur de mon fichier source, il fonctionne parfaitement:

#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
}

Pourquoi cela se produit?
J'ai installé la bibliothèque comme il est dit sur le lien ci-dessus, je l'ai vérifié et les deux cs50.h et libcs50.un sont respectivement dans /usr/local/include et /usr/local/lib.

Je vous remercie d'avance pour votre aide.

Êtes-vous en passant -lcs50 à votre compilateur?
Et également d'un bon -L<some_directory> pour indiquer au compilateur où chercher pour -lcs50?

OriginalL'auteur Pillo | 2012-08-24