无法在C中编译基础教程

时间:2011-11-28 00:39:59

标签: c gcc osx-lion

我刚刚开始尝试学习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一起安装的标准编译器。

如果这个问题有明显的答案,我很抱歉,但由于我无法克服第一道障碍,我发现很难学到任何东西。

感谢您的帮助

2 个答案:

答案 0 :(得分:6)

使用getchar()代替getch()getch()是非标准的。

使用getchar()(可能)意味着您需要按Enter键,而getch()则不然,但如果您要做的只是编译一个简单的程序来开始使用C,那么对你来说可能无关紧要。

答案 1 :(得分:2)

如果您将getch()替换为getchar()getc(stdin),它应该有效。正如Oli Charlesworth建议的那样,您可能希望查看不同的教程... getch()位于curses库中,因此您无法在不链接的情况下构建可执行文件。如果教程没有指定,那可能不是很好。