collect2.exe: エラー: ld が 1 を返しました 終了ステータスの分析と解決策

読む前にご覧ください:私は記録に熱心な人間で、ブログを書くたびに繰り返し勉強し、継続的にブログの品質を向上できるように努めます。ブログを書くのは本当に大変な作業だったので、この記事はファンのみに設定されています。お互いに向上していきたいと思いますのでよろしくお願いします!


提示:以下是本篇文章正文内容

1. 問題の説明

Windows でのネットワーク プログラミング、devc++、.cpp プログラムの実行時に次のエラーが報告されます。

[Error] ld returned 1 exit status

誤差グラフは次のとおりです。

ここに画像の説明を挿入

特定のエラー行にはジャンプしません。


2. 分析

私も Baidu を少し試しましたが、インターネット上の解決策は次のとおりです。

1. プログラムに main 関数が存在しない
2.
printf/scanf での書き込みエラー 3. main 関数内のカスタム関数名での書き込みエラー (つまり、メイン関数の前に出現しないカスタム関数) main関数)
4. カスタム関数が宣言されているだけの場合、main関数が呼び出されます
。 5. 前回の実行結果はクローズされません。

ただし、エラーはまだ解決されていません。次の図に示すように、後でコンパイル ログを確認してください。

ここに画像の説明を挿入

実際のcollect2.exeは次のとおりです: error: ld returns 1 exit status. ここで、collect2.exeはリンクファイルにエラーがあることを示しており、特定のエラーは上記で指摘されています。

ここに画像の説明を挿入
したがって、「__imp_WSAStartup」エラーへの未定義の参照を解決してください。

3. 解決策

__imp_WSAStartup'ソリューションへの未定義の参照は、以前に書かれた記事「__imp_WSAStartup' ソリューションへの Windows ネットワーク プログラミングの未定義参照」を参照しています。

実際には、コンパイル環境にリンク ライブラリを追加します (ソフトウェアによって方法が異なります。Baidu を自分で使用できます。たとえば、私は devc++ で、「devc++ add wsock32 library」を検索します)。

-lwsock32

ここに画像の説明を挿入


4. まとめ

エラー: ld は 1 終了ステータスを返しました。インターネット上で最も一般的な方法は適用できない可能性があります。コンパイル ログの内容を確認して、何が問題だったのかを分析する必要があります。


コードワードは簡単ではありません。お褒めいただきありがとうございます。
コードワードは簡単ではありません。お褒めいただきありがとうございます。
コードワードは簡単ではありません。お褒めいただきありがとうございます。

おすすめ

転載: blog.csdn.net/qq_40967086/article/details/128492142