重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

cygwinでコンパイルしようとしたところ次のようなエラーが表示されました。

undefined reference to '_imp_iob'
collect2: ld returned 1 exit status

どのような意味なのでしょうか?対処法なども教えてください。

A 回答 (1件)

読んで字のごとく、 「_imp_iobへのリファレンスが定義されていません」ということです。



ヘッダとかでプロトタイプ宣言した関数や、extern指定した変数等が、コンパイルの最終作業であるリンクの際にその実体が見付からなかった、ということです。
大抵は、それが入っているオブジェクトファイル(*.o)やライブラリ(*.a)のリンク指定忘れです。
リンク時のファイル指定の順番によっても出ることがあります。

また、_で始まるのは主にC言語内部で使うもので、プログラム中では_の付かない imp_iopとなっているかもしれません。

いずれにせよ、「何をコンパイルしようとしたのか」が書いてないので、対処法はわかりません。
検索かけるとlibg3dというのがたくさん出てくるし、Cygwinの文字もいっしょになっているので、みんな苦労しているのでしょう。
    • good
    • 0

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