【发布时间】:2019-01-20 15:36:34
【问题描述】:
对不起,如果这是一个重复的问题,但我找不到有效的答案。
我很长时间以来第一次编写 Hello World C 程序。我相当确定代码是正确的,但它不会编译。
运行 MAC OS 10.13.6,我上周刚刚下载了 XCode。程序使用
编译成目标文件cc -c test.c -o test.o
没有问题。但是,我无法使用
创建可执行文件cc test.o -o test
代码如下:
#include <stdio.h>
int Main()
{
printf("Hello World");
return 0;
}
当我去创建可执行文件时,我得到了
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
我猜我需要添加一些编译器标志,但不知道是哪些。
【问题讨论】:
-
int Main()这不是您在 C 中编写 main 函数的方式。 -
C 中的名称区分大小写,入口函数需要命名为“main”,而不是“Main”。
-
C 区分大小写 "Main" 不是 "main"
-
当
main()不带参数时,它是int main(void)。 -
@alk 人们倾向于将初学者的错误与糟糕的问题混为一谈。
标签: c macos linker-errors undefined-reference undefined-symbol