在Mac OSX Lion上编译非常简单的name.c文件时,我遇到了一些问题.
现在,我开始关注cs50.net上的哈佛CS50课程.我不完全是编程新手,但我很好奇如何教这门课程.
这是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; }
你可以看到,它需要这个库:https://manual.cs50.net/CS50_Library.
现在,当我编译它,这发生:
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
如果我的源文件中使用相同的GetString()cs50.c函数,它的工作原理是完美的:
#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,name); } string GetString(void) { // CODE }
为什么会发生这种情况?
我在上面的链接上安装了图书馆;我查了两个cs50.h和libcs50.a分别在/usr/local / include和/usr/local / lib.
预先感谢您的帮助.