我今天开始了我的编程之旅,遇到了一些麻烦。在写的时候
#include <stdio.h>
main(void)
{
printf ("hello, world\n");
}用C语言在名为cs50.io的网站上,然后写clang hello.c,我得到了以下错误:

有没有办法解决这个问题?
发布于 2017-06-16 23:57:44
首先,你可以在StackOverflow上找到你的答案。您应该阅读错误消息,然后尝试通过您自己的搜索来理解它们的含义。
此处解释了undefined reference to 'main'错误:Undefined reference to main - collect2: ld returned 1 exit status
本质上,在C语言中,main()不是void main(void)函数(即void )的有效返回值。使用gcc编译器,我认为它类似于clang,当main()没有规范时,你的返回值默认是int。因此,当需要返回值时,您可以使用没有返回值的main()函数。有关C的StackOverflow ()函数的有效签名的更多信息,请阅读其他main问答:
What are the valid signatures for C's main() function?
由于我不熟悉clang编译器,除了这些错误之外,可能还会发生其他事情。
发布于 2017-07-31 04:38:10
作为一种良好的实践,您将希望使用标志进行编译,以说明代码中可能存在的某些错误/警告,但这些错误/警告可能会被编译器忽略。
-Werror是一个很好的标志,它将所有警告都视为错误。您将重新编译为clang -Werror hello.c
在本例中,由于您只是打印而不返回任何内容,因此您应该使用void main ()
使用您提供的代码,您应该始终说明函数返回的内容,如上所述。
干杯。
https://stackoverflow.com/questions/44509494
复制相似问题