▼スレッド
│
└◇804:gccがうまく構築できない? [Little Wing] 12/10 00:15
└◇805:Re:gccがうまく構築できない? [な] 12/10
└◇822:Re[2]:gccがうまく構築できない? [Little ] 12/11
└◇825:Re[3]:gccがうまく構築できない? [な] 12/11 <
先日Cygwin(setup.exe ver2.249.2.5) で環境を一式インストールしスレッド一覧
Cのプログラミングを開始したのですが、下記のエラーメッセージをがでて
うまくコンパイルできません。例のhello.cもだめです。
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32
collect2: ld returned 1 exit status
gcc のバージョンは3.2です。
システムやC関係はちょっと不慣れなので何処に問題があるのか検討がつかない。
コメント頂けると助かります。
なんと言うか、突っこみどころが満載なんですが、スレッド一覧
・なにに困っているのか
・なにをして現象が発生したのか
・どうしたいのか
をきちんと、正確に、過不足がないように書きましょう。
# 困っていることの解決方法と、どうしたいのかの解決策は、ほぼ違います。
"gccがうまく構築できない?" というタイトルなので、
クロスコンパイラをビルドする話かと思いましたが、全く関係ないんですね。
> 先日Cygwin(setup.exe ver2.249.2.5) で環境を一式インストールし
setup.exe のバージョンはほぼ関係ありません。
# インストールに失敗する、というトラブルの原因にはなりますが。
「環境を一式」というのは、どのパッケージを入れたのでしょうか。
> /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32
> collect2: ld returned 1 exit status
"cannot find -luser32" = "libuser32.aが見つからない" と言っていますね。
w32api パッケージが入っていないようです。
> gcc のバージョンは3.2です。
gcc -v して表示される、最後の行に、"gcc version:" と出てきます。
一般的に、"gccのバージョン"と言えば、そちらが重要です。
ご指摘どおり粗雑な文章で、失礼しました。スレッド一覧
改めて書くと、
ごく簡単なプログラムですらコンパイルできない
エラーメッセージは前回書いた通り。
gccのインストールで何かしくじったのか
インストール後の何らかの設定が拙いのか不明
ちゃんとコンパイルできるようにするにはどうしたら良いのか
コメントをもらいたい。
ということです。一応ネットワーク上を調べて回ったのですが、
問題解決できないでいます。
w32apiパッケージが必要ということでしょうか。
ついでに無知をさらけ出しますが、
/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32
collect2: ld returned 1 exit status
というエラーメッセージをどう読んだら、w32apiパッケージ欠如という結論に
至るのか、ポイントを教えてもらえないでしょうか。
> w32apiパッケージが必要ということでしょうか。スレッド一覧
必要です。
なお、setup.exeにはアーカイブファイルのダウンロードに失敗しても
エラーを報告せずに正常終了してしまうバグがあるようです。
いったんダウンロードしてからインストールするなり、
ローカルにミラーを作って、そこからsetup.exeでインストールするなり
してください。
# わたしはローカルミラーを作っていますので、そのバグに遭遇したこと
# がありません。
> ついでに無知をさらけ出しますが、
> /usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32
> collect2: ld returned 1 exit status
> というエラーメッセージをどう読んだら、w32apiパッケージ欠如という結論に
> 至るのか、ポイントを教えてもらえないでしょうか。
先の回答にも書いたように、ldが"cannot find -luser32"と言っていますから、
ライブラリの検索パスの中にlibuser32.aが見つからない、ということです。
libuser32.aがどのパッケージに含まれているのかは、
パッケージが完全にインストールされている環境であれば、
以下のようにすればわかります。
$ zgrep libuser32 /etc/setup/*
/etc/setup/w32api.lst.gz:usr/lib/w32api/libuser32.a