OpenGLとcygwin
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNG作っています。出来上がった実行ファイルをcygwinのない環境でも
動かしたいんですが、ヘッダーを全部
#include <mingw32/hoge.h>
#include <mingw32/GL/hoge.h>
として、-mno-cygwinを付けてコンパイルしても、
objdumpで出来上がりのファイルを覗くと
やっぱりcygwin1.dllが読み込まれています。
なんかやり方間違ってるでしょうか?
0002名無しさん@お腹いっぱい。
NGNGあるいは
ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
こっち使うとか。
00031
NGNGOpenGL関連のライブラリを使わなければ、上記の方法で問題なく
コンパイルできて、cygwin以外の環境で実行もできるのですが、
OpenGLを使うと駄目です。書き忘れましたがglut(3.7)を使っています。
で、上で教えていただいたものも以前に試そうとはしたんですが、
現在ではmingw32の機能(?)はcygwinの中に取り込まれているみたいで、
cygwinのincludeの下にはmingw32関連も入っています。
(でもGL関連を読み込むと-mno-cygwinを付けてもcygwin1.dllが
読み込まれてしまいます。)
にんともかんとも。
0004名無しさん@お腹いっぱい。
NGNGCygwinに依存してたりしない?
mingw32は確かにCygwinに取り込まれてるけど、C Runtimeに
crtdll.dll使っちゃうから、_beginthreadex()とか一部使えない
ライブラリ関数もあるよ。
0005名無しさん@お腹いっぱい。
NGNG0006名無しさん@お腹いっぱい。
NGNGldにそんなオプションないよ。
0007名無しさん@お腹いっぱい。
NGNGldのかわりに、
gcc -mno-cygwin
とかでリンクしないと駄目じゃない?
ヘッダーファイルもmingwにないのは、cygwinの方読み込むし
0008名無しさん@お腹いっぱい。
NGNGgccに-v付けてどういうオプションでldが実行されてるか見てみなよ。
gcc -mno-cygwin -c a.c
ld -o a.exe a.o /usr/lib/crt1.o -lmingw32 -lcrtdll -lkernel32 -luser32
/usr/lib/crt0.oだとcygwin1.dllに依存。
00098
NGNG普段直接ld呼んでたからそれ前提にしちゃってた。スマ
0010名無しさん@お腹いっぱい。
NGNG-lcygwin
してるとか?
objdumpよりは、リンク時のMAP見た方がいいと思うよ。
00111
NGNGgcc -mno-cygwin -v でコンパイルしてみました。
出力の読み方がよく分からないんですが、とりあえず
読み込んでるようなライブラリは
> -lglut32 -lglu32 -lopengl32 -lm -lmingw32 -lgcc
> -lmoldname -lcrtdll -luser32 -lkernel32 -ladvapi32 -lshell32
でした。-lcygwin というのはありませんでした。それと
> collect2.exe -Bdynamic /usr/lib/crt1.o
とあり、crt0.oは見当たりませんでした。これって何かの
手がかりになるんでしょうか。
0012名無しさん@お腹いっぱい。
NGNGcygwin用のmath.hとかが読み込まれてる可能性があるので
一度、libcygwin.aをリネームして、リンクしてみたら?
リンクエラーが出るだろうけど、mapみるより、早いと思う。
0013名無しさん@お腹いっぱい。
NGNG00141
NGNG-lmオプションを付けずにコンパイルしたところcygwin1.dllを
読み込まずに作ることができました。
> gcc main.c -lopengl32 -lglut32 -lglu32 -DWIN32 -mno-cygwin
cygnusのgccでは-lmを付けなくても三角関数などは
普通に使えるようなので私の場合支障ありません。
どうもありがとうございました。マジうれしいです。
これでVC++使わずに済みます。
#mule+gccの環境から離れられなくて…。
00151
NGNGそれで"cygwin mingw32 libm"とかでサーチしてみると
下のサイトが引っかかりました。
www2.tech-unet.ocn.ne.jp/__dic__/perl/mno-cysgin-howto.html
FAQっぽかったです。
#でもここの邦訳(おそらく機械翻訳)は読んでいて
#無性に腹が立つっす。でもサイトの運営者には感謝です。
■ このスレッドは過去ログ倉庫に格納されています