プロが教える店舗&オフィスのセキュリティ対策術

gcc ○○.cでプログラムを通した時に
このエラーが出た場合
何が原因だと考えられますか?
"main" "_start" の文字は何回みてもプログラム内に書いていないです
プログラム内容の方を記せないのですが
内容的には入力した配列を逆順にして出力するプログラムです。(入力関数 及び 出力関数は どちらもプロトタイプです)

「C言語のエラーについてです」の質問画像

A 回答 (4件)

分割コンパイル


リンケージ

あたりをキーワードに検索したり本で調べたりしてください。


。main" "_start" の文字は何回みてもプログラム内に書いていないです

_start はプログラム中では start として定義されているはずです。
「mainが書いてない」のはむしろ「書いてないこと」が原因です


もし、分割コンパイルの一部だとしたら、 .o で出力を止めずに、リンカまで実行しているのが原因です。
-c オプションで .o ファイルを出力するようにしましょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。
main関数入れ込んでなかったです。
しっかりプログラムの方を確認していきたいと思います。

お礼日時:2020/06/03 20:58

エラーメッセージに


undefined reference to `main'
とあるんだから
main を定義していない
という可能性は頭にないといけない.

ちなみに _start は C のランタイム (この場合は crt1.o) で定義されているシンボルなので, ユーザープログラムでは普通定義しない. あと現在の gcc では「ソースコード中の識別子をそのままシンボルとして使う」ので, もし本当に _start というシンボルが必要ならソースコードでも _start と書かないといけない. 実際, main はそのまま main になっているからね.
    • good
    • 0
この回答へのお礼

分かりやすい説明ありがとうございます。
もう一度プログラムの中身を確認して
やってみたいと思います。

お礼日時:2020/06/04 01:15

undefined reference to `main'



main関数がないとコンパイラが言っています。
プログラムを見直してください。
    • good
    • 0

詳しくないのにエラソーですみませんが



>プログラムを通した時に
「通した時」って何?あなた独自用語使っても人には通じませんよ
「さぁ一気に変換しろコノヤロ」って操作をしたんですかね。
だとして
>このエラーが出た場合
どの段階で出たんです?

メッセージの意味がよくわからないにしても、
そのメッセージを発したのがどの段階なのか、によって
意味が違うんじゃないの

あと
「~で終了しました」ってメッセージなら、エラーとは限らなくね?
なぜエラーだと思ったんです?

エラーの他には「ワーニング」(警告)ってのもあります。
「これはこういうことになるけど言っとくね」くらいの意味です
プログラマ本人が想定済みなら別に問題ありません

そういうのなんじゃないの
    • good
    • 0
この回答へのお礼

ありがとうございます。
プログラムを実行したときといった記入の仕方が正しいですかね。
ワーニングというものが存在するのですね。
まだ全然右も左もわからない学生ですので教えていただけてうれしいです。

お礼日時:2020/06/03 21:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!