▼スレッド
│
└◇636:dirent関連のコマンドがコンパイルできない [Cygwin初心者] 10/07 12:50
└◇639:Re:dirent関連のコマンドがコンパイルできない [な] 10/09 <
gccでopendir, readdir, closedir等の関数をコンパイルスレッド一覧
しようとすると"undefined reference to `opendir'"と
いったエラーが出ます。
プログラムの先頭でdirent.hをインクルードしています。
#include <dirent.h>
同じソースコードを、他のSolarisやHP-UX上のgccで
コンパイルした場合は全く問題ありません。
ちなみに、半年くらい前まではCygwin上でもOKでした。
どなたか、解決方法が判る方がいらっしゃいましたら、
お助け下さい。
"undefined reference to `opendir'" とエラーが出るのはどういったスレッド一覧
タイミングでしょうか?
少くとも、$ nm -o /lib/libcygwin.a | grep opendir とすると、
/lib/libcygwin.a:d000342.o:00000000 I __imp___opendir
/lib/libcygwin.a:d000342.o:00000000 I __nm___opendir
/lib/libcygwin.a:d000342.o:00000000 T __opendir
/lib/libcygwin.a:d000939.o:00000000 I __imp__opendir
/lib/libcygwin.a:d000939.o:00000000 I __nm__opendir
/lib/libcygwin.a:d000939.o:00000000 T _opendir
となりますので、/lib/libcygwin.a が存在するかどうかを確認し、
存在しないのなら cygwin-1.3.xx-y.tar.bz2 を再インストール、
存在するのなら、おそらく /usr/lib/gcc-lib/i686-pc-cygwin/ 以下の
specs がおかしくなっているでしょうから、
gcc, binutils あたりを再インストールしてみてはいかがでしょう。
ちなみに、うちではopendir,readdirを含むソースも問題なくビルドできます。