我刚刚开始尝试学习C并且一直在尝试做教程,但他们不会编译。这些错误似乎表明我使用64位操作系统(狮子)是一个问题,但我无法看到这样一个简单程序的情况。
代码:(直接从' thenewboston'教程中复制)
#include <stdio.h>
int main(void)
{
printf("Hello World");
getch();
}
然后我在终端输入了这个:
gcc tnb_1.c
我得到的错误是:
Undefined symbols for architecture x86_64:
"_getch", referenced from:
_main in cc2nMvOk.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
我使用的编译器是与xcode一起安装的标准编译器。
如果这个问题有明显的答案,我很抱歉,但由于我无法克服第一道障碍,我发现很难学到任何东西。
感谢您的帮助
答案 0 :(得分:6)
使用getchar()
代替getch()
。 getch()
是非标准的。
使用getchar()
(可能)意味着您需要按Enter键,而getch()
则不然,但如果您要做的只是编译一个简单的程序来开始使用C,那么对你来说可能无关紧要。
答案 1 :(得分:2)
如果您将getch()
替换为getchar()
或getc(stdin)
,它应该有效。正如Oli Charlesworth建议的那样,您可能希望查看不同的教程... getch()
位于curses库中,因此您无法在不链接的情况下构建可执行文件。如果教程没有指定,那可能不是很好。