2017-06-12 16 views
0

今日はプログラミングで冒険を始め、いくつかの問題に直面しました。C言語エラー

enter image description here

それを解決する方法任意のアイデア:cs50.ioと呼ばれるウェブサイト上でC言語で

#include <stdio.h> 

main(void) 
{ 
printf ("hello, world\n"); 
} 

をwiritngし、その後、私はエラー以下の持って打ち鳴らすのhello.cでの書き込み中に?

+6

エラーとして画像として報告することはできません。質問にテキストとして貼り付けます。 – BackSlash

+4

まず、 'int main(void)'を試してください –

+5

あなたの問題(Clangのインストールに間違いがあると思われます)とは関係ありませんが、 'main'関数は' int'を返すよう明示的に宣言する必要があります。最後に 'return'ステートメントは必要ありませんが、' main'の宣言は本当に正しいはずです( 'int main(void)')。 –

答えて

0

まず、StackOverflowにあなたの回答が掲載されています。エラーメッセージを読んで、自分の検索で何が意味するものなのかを理解してください。

undefined reference to 'main'エラーがここで説明されている: Undefined reference to main - collect2: ld returned 1 exit status

本質的には、C言語では、ボイドはmain()関数の有効なリターン(すなわちvoid main(void))ではありません。私が考えるgccコンパイラでは、clangに似ています。main()に指定がない場合、戻り値はデフォルトでintになります。したがって、返品が必要な場合は戻り値なしのmain()関数があります。 Cのmain()関数の有効な署名の詳細については、この他のStackOverflowのQ & Aを読む:私はclangコンパイラに慣れていないよ

What are the valid signatures for C's main() function?

、以来、これらのエラー以外にも起こって何か他のものがあるかもしれません。

0

フラグを使用してコンパイルして、コード内にある可能性のあるエラーや警告を考慮してコンパイルすることができます。

-Werrorは、すべての警告をエラーとしてカウントする優れたフラグです。あなたは、あなただけ印刷していない何かを返すされているので、あなたが提供したコードで無効メイン(無効)

を持っている必要があり、この場合、打ち鳴らす-Werrorのhello.c

として再コンパイルします上記のように、関数が何を返すのかを常に考慮する必要があります。

乾杯。