在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.
预先感谢您的帮助.
解决方法
原文地址:https://www.jb51.cc/c/116652.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。