C - Símbolos indefinidos para arquitetura x86_64 ao compilar no Mac OSX Lion
Estou tendo alguns problemas na compilação de um arquivo name.c muito simples no Mac OSX Lion.
Agora, comecei a seguir o curso da Harvard CS50 no cs50.net. Eu não sou totalmente novo para programação, mas fiquei curioso sobre como este curso foi ensinado.
Esta é a fonte do nome.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;
}
Como você pode ver, é necessário que esta biblioteca:https://manual.cs50.net/CS50_Library.
Agora, quando eu compilo, isso acontece:
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
Se eu uso a mesma função GetString () cs50.c dentro do meu arquivo fonte, ele funciona perfeitamente:
#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
}
Por que isso acontece? Eu instalei a biblioteca como diz no link acima; Eu verifiquei e ambos cs50.he libcs50.a estão respectivamente em / usr / local / include e / usr / local / lib.
Agradeço antecipadamente por sua ajuda.