2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MinGWを使おう

1 :winx ◆htT2l2LViA :03/01/15 15:15
フリーコンパイラ「MinGW」
http://www.mingw.org/

2 :デフォルトの名無しさん:03/01/15 15:22
2

3 :winx ◆htT2l2LViA :03/01/15 15:24
>>2
2とか書き込んでる暇あったら語り合おうやw

4 :デフォルトの名無しさん:03/01/15 15:24
PinGWを使おう
http://www.sonymusic.co.jp/MoreInfo/Chekila/Pingu/video/cd_rom01.html

5 :デフォルトの名無しさん:03/01/15 15:26
>>1 gccとmakeのWindows用みたいなものか。

始めてみた人がこのスレッドの>>1をみたら何のことだかわからないぞ。
ちゃんと説明くらい入れておき。

何を語りたいのか説明しろや

6 :デフォルトの名無しさん:03/01/15 15:34
>>4
Linuxの新ディストリビューションかと思った。

7 :winx ◆htT2l2LViA :03/01/15 15:34
>>4
ネタスレじゃないのでw

>>5
補足サンクス。
とりあえず、MinGWの使いごごち等話し合いましょう。
正直、VCでコンパイルするより軽いし動作速いです。

8 :デフォルトの名無しさん:03/01/15 15:45
うむ、gcc特有の非常に有用なコード(配列へのgotoラベル格納とか)が
書けるのはありがたい。
MFCとか考えなければVCとの互換性は結構高い。

9 :デフォルトの名無しさん:03/01/15 15:46
ちみ、winxじゃないか。
VB(なんたら)のスレはどうなった?

10 :winx ◆htT2l2LViA :03/01/15 15:53
>>8
MFCくそじゃん
VCでもスケルトン自分で書いてるし

>>9
まだ俺を覚えてる人がいたかw
あぁ、あれはモララーにやられてdat落ちしたよ(´Д⊂ヽ


11 :タコユーザ:03/01/15 16:03
mingw ユーザです。
フリーでこれほどの物作っちゃうんだから
海外はすごい開発力ですねぇ。 >> mingw

使い心地は、至って快適。DTK は使ってないけど
make でがりがりやればなくても言うことも特にない…。
(話終わっちゃいますが)

ウチは gcc 3.2(mingw special 20020817-1) なので
そろそろ 3.2.1 にしてみたいかも。
タコなおいらは MinGW パッケージ待ちです。

12 :デフォルトの名無しさん:03/01/15 16:05
cygwin と何か違うの?

13 :デフォルトの名無しさん:03/01/15 16:19
>>12
cygwin.DLLの助けを受けないぶんフリー
そのかわりunix互換性は低い

14 :デフォルトの名無しさん:03/01/15 16:59
フリーって言うかGPLの縛りを受けない、だな

15 :デフォルトの名無しさん:03/01/16 21:11
100歩譲って過去の事は水に流そう。
でも、↓とどう住み分けるのよ?

GCCについて
http://pc3.2ch.net/test/read.cgi/tech/1007731543/


16 :winx ◆htT2l2LViA :03/01/16 22:52
>>11
おぉ、MinGWユーザーいたか
前、MinGWスレあったんだが誰も使い方わからなかったみたいで寂れてたよ
2chのコーダーを疑ったよw
ちなみに漏れもタコでパッケージ持ちですよ

>>13
クロスコンパイルに便利だね

>>15
ここはMinGWスレですからあくまでMinGW限定で行きましょう

17 :デフォルトの名無しさん:03/01/16 23:32
-mno-cygwinオプションマンセー。

mingwは、win32開発用gcc環境、と言ったほうがいいのかな。
cygwinは"win32上のunixエミュレータ環境"での開発用gcc環境、だろうし。

主要なwin32 api群がほとんどそのまま使えるのはうれしいね。
ただ、VC++用のlibやdllを使おうとすると死ぬほど疲れるのがナントモ。

今は、ソースコードのgcc(g++)への移植性のチェックに使ってます。
gcc2.xも3.xもあるので大変便利。

18 :デフォルトの名無しさん:03/01/16 23:47
>>16
>誰も使い方わからなかったみたいで寂れてたよ
話すネタがなかっただけだろ。

19 :デフォルトの名無しさん:03/01/17 01:32
>>15
厨房コテってやつは 「自分のスレ」 をほしがるから言っても無駄。

20 :デフォルトの名無しさん:03/01/17 02:52
Cygwin 使ってるんですけど、
configure で MinGW の方の gcc の環境を
チェックしてくれるようにするには
どうすればいいんでしょうか?
無理?

21 :デフォルトの名無しさん:03/01/17 03:30
ruby の configure.in より

[AC_TRY_CPP([
#ifndef __MINGW32__
# error
#endif
], rb_cv_mingw32=yes,rb_cv_mingw32=no)

22 :20:03/01/17 03:37
>>21
すみません。configure 読めないんです...。
とりあえずは configure いじればできるということでしょうか?

23 :デフォルトの名無しさん:03/01/17 03:48
configure.in ね。
autoconf の使い方を調べてみて。

24 :20:03/01/17 03:51
>>23
また調べてきます...。
ありがとうございました。

25 :デフォルトの名無しさん:03/01/17 17:04
configureキモイんだけど、どうにかなりませんか?

26 :デフォルトの名無しさん:03/01/17 23:51
なら、UNIXes を統一してください。

27 :winx ◆htT2l2LViA :03/01/20 01:04
>>18
>>19
前あったmingwスレは俺が立てたんじゃないんだが?
そん時は、俺はタダのロムラーだったしw

てゆーか、下がりすぎだろ

28 :デフォルトの名無しさん:03/01/20 01:07
Shift-JISの通らないコンパイラはいらん。

29 :winx ◆htT2l2LViA :03/01/20 01:08
>>28
回避できるよ

30 :デフォルトの名無しさん:03/01/20 01:15
MinGWバイナリならここでしょ。
http://www63.tok2.com/home/bitwalk/download.html#mingw

31 :winx ◆htT2l2LViA :03/01/20 01:30
>>30
そこは知らなかったよ

32 :デフォルトの名無しさん:03/01/20 01:36
>>31
俺は
http://www.bloodshed.net/devcpp.html
のDev-C++の統合環境をインストールしてから、
>>30を上書きして使ってる。
便利だよ〜。ほとんど自動でセットアップしてくれるし。

33 :デフォルトの名無しさん:03/01/20 07:48
>>29
リソースコンパイラでどうしても文字化けするので、
それだけbccので変換している俺は何者ですか?

34 :デフォルトの名無しさん:03/01/22 01:40
MinGWでWinプログラムを作って実行すると
プロンプトが開いてしまうのですが、回避できますか?
誰か、気づいて、知ってる人がいたら教えて下さい

35 :デフォルトの名無しさん:03/01/22 12:07
>>33 俺はバイナリエディタで¥を¥¥に置き換えておいるが、
そういう手があったか。

36 :デフォルトの名無しさん:03/01/23 14:15
>>33
windresのソース見るとコード変換のとこがあるから
そこをSJIS決め打ちでUCS-2にでも変換するとできるよ。

>>34
-mwindows

37 :山崎渉:03/01/23 20:08
(^^)

38 :デフォルトの名無しさん:03/01/24 04:31
>>36
出来ました♪
ありがとうございます
多分窓用のオプションがあるんだろうなと思いつつ
何となく普通にコンパイルしたら通ったので
そのまま使ってましたが、やっぱり、あったんですね
しかも、今までエラーが出て使えなかったAPIも使えるようになったし…
ところで、MinGWの1.1と2.0で簡単な↓のようなプログラムを作ると
#include <windows.h>
int WINAPI WinMain ( HINSTANCE, HINSTANCE, LPSTR, int ) {
  MessageBox ( NULL, "MinGWを使おう", "2CH", MB_OK ) ;
  return 0 ; }
出来あがるファイルのサイズがかなり変わるのですが
これは、2.0(gcc3.x)のC++にリンクが必要なlibstdc++のせいでしょうか?
それとも、安定性等を高めるために何かしてるんでしょうか?
教えて君で申し訳ないのですが、知ってる方は教えて下さい

39 :デフォルトの名無しさん:03/01/24 14:16
>>38
stripした?

40 :デフォルトの名無しさん:03/01/24 16:57
>>38
オプション -s をつけてコンパイルすると stripしたのと同じ効果が得られる。

41 :38:03/01/25 01:20
#include <fstream>
using namespace std ;
int main () {
%nbsp; ofstream fout( "2CH.DAT" ) ;
%nbsp; fout << "MinGWを使おう" << endl ;
%nbsp; return 0 ; }
これを"test.cpp"と名前を付けて↓のようにコンパイルしました
set path=xxx // mingw1.1のパス
gcc -O test.cpp -lstdc++ -o mingw1n
gcc -O test.cpp -lstdc++ -s -o mingw1s
set path=xxx // mingw2.0のパス
gcc -O test.cpp -lstdc++ -o mingw2n
gcc -O test.cpp -lstdc++ -s -o mingw2s
すると次のようなファイルサイズになりました
MINGW1N EXE 151,470
MINGW1S EXE 87,040
MINGW2N EXE 418,222
MINGW2S EXE 190,976
大きい実行ファイルを作るのなら、あまり気になりませんが
小さい実行ファイルを作る時には結構気になります
これは、何かコンパイルの仕方を間違ってるのでしょうか?
ちなみに↓は↑と同様に>>38をコンパイルした時の方法とサイズです
set path=xxx // mingw1.1
gcc -O test.cpp -mwindows -o mingw1nw
gcc -O test.cpp -s -mwindows -o mingw1sw
set path=xxx // mingw2.0
gcc -O test.cpp -lstdc++ -mwindows -o mingw2nw
gcc -O test.cpp -lstdc++ -s -mwindows -omingw2sw
MINGW1NW EXE 11,909
MINGW1SW EXE 4,096
MINGW2NW EXE 94,144
MINGW2SW EXE 50,688

42 :デフォルトの名無しさん:03/01/25 01:24
>>41
nmの結果を比べてみると?

43 :38:03/01/25 03:06
>>42
あぅ、素早いレスありがとうございます
gccの使い方を理解してないのでnmで何を比べてみたら良いのか分かりません
取り敢えず>>38の方で2.0はlibstdc++.aに含まれる
___gxx_personality_v0というシンボルが必要な事は分かりましたが
>>41の方は違いが、あまりにもありすぎて…
でも、>>38で使用してる覚えのない___gxx_personality_v0が気になったので
アセンブラで出力してみました

44 :38:03/01/25 03:07
  .file"test.cpp"
  .text
LC0:
  .ascii "2CH\0"
LC1:
  .ascii "MinGW\202\360\216g\202\250\202\244\0"
  .align 2
.globl _WinMain@16
  .def_WinMain@16;.scl2;.type32;.endef
_WinMain@16:
LFB1:
  pushl%ebp
LCFI0:
  movl%esp, %ebp
LCFI1:
  subl$8, %esp
LCFI2:
  pushl$0
  pushl$LC0
  pushl$LC1
  pushl$0
LCFI3:
  call_MessageBoxA@16
  movl$0, %eax
  movl%ebp, %esp
  popl%ebp
  ret$16
#続きます

45 :38:03/01/25 03:09
LFE1:
  .section.eh_frame,"w"
Lframe1:
  .longLECIE1-LSCIE1
LSCIE1:
  .long0x0
  .byte0x1
  .ascii "zP\0"
  .uleb128 0x1
  .sleb128 -4
  .byte0x8
  .uleb128 0x5
  .byte0x0
  .long___gxx_personality_v0
  .byte0xc
  .uleb128 0x5
  .uleb128 0x4
  .byte0x88
  .uleb128 0x1
  .align 4
LECIE1:
#まだ続きます

46 :38:03/01/25 03:11
LSFDE1:
  .longLEFDE1-LASFDE1
LASFDE1:
  .longLASFDE1-Lframe1
  .longLFB1
  .longLFE1-LFB1
  .uleb128 0x0
  .byte0x4
  .longLCFI0-LFB1
  .byte0xe
  .uleb128 0x8
  .byte0x84
  .uleb128 0x2
  .byte0x4
  .longLCFI1-LCFI0
  .byte0xd
  .uleb128 0x4
  .byte0x4
  .longLCFI3-LCFI1
  .byte0x2e
  .uleb128 0x10
  .align 4
LEFDE1:

47 :38:03/01/25 03:15
>>44-46で行頭以外のタブの変換を忘れてしもうた…スマソ
で、>>43の続きですが、やはりおかしいと思い
>>45のret以降の行は直接呼んでる気配は無かったので
試しに削って↓のようにコンパイルしてみたところ
gcc -s xxx.s -lstdc++ -mwindows -o xxx.exe
エラーは1つも出ずに11,264バイトまで減り
実行しても特に問題は無さそうでした…
で、詳しい方に質問です
↓の行から下は何をする為にメモリを確保してるのでしょうか?

  .section .eh_frame,"w"

ちなみに、mingw1.1でアセンブラにしたら、ret以降は存在しない事と
retの直前がleaveになってる事以外は同じでした
やっぱり、コンパイルのオプションを間違えてるんでしょうか?

48 :デフォルトの名無しさん:03/01/25 11:03
eh〜ってことは例外処理関連じゃないかなあ。
gccは2.xxと3.xxで例外周りが結構変わってるから、その違いかもしれない。

49 :デフォルトの名無しさん:03/01/26 05:33
>>48
例外処理にしても、一体どうやって呼び出してるのでしょうか?
WinMain()は".globl"のようにしてるから参照できると思うのですが…

50 :デフォルトの名無しさん:03/01/26 14:28
>例外処理にしても、一体どうやって呼び出してるのでしょうか?
VCのSEH(StructureExceptionHandling)とは違うのかな
VCの例外はSEHと__CxxFrameHandlerの組み合わせだったような気がするけど

51 :50:03/01/26 14:37
×VCのSEH ○WIN32の

52 :デフォルトの名無しさん:03/01/26 14:39
g++だと、使わなくてもリンクするからねえ。
諸般の都合で。

53 :デフォルトの名無しさん:03/01/27 07:26
構造化例外処理って言うと0割やメモリ保護等のを処理する時に使う
って認識しかないし、結局使った事ないから分からないけど
何とか、上手く呼び出す方法があると言う事なのかな…
まぁ、何にしても小さいファイルを作る時はMinGW2.0は向いてないんですね

54 :デフォルトの名無しさん:03/01/27 09:23
>>53
例外使わないならg++に-fno-exceptionsオプションつけると小さくなるかもよ
構造化例外はココが詳しい
http://www.codeproject.com/cpp/Exceptionhandler.asp
http://www.microsoft.com/msj/defaultframe.asp?page=/msj/0197/exception/exception.htm&nav=/msj/0197/newnav.htm
詳しくなっても得るものはないけどね(ワラ
mingwもコレ使ってるのかなぁ…gccのことはよく知らない

55 :デフォルトの名無しさん:03/01/27 21:30
>>54
-fno-exceptionsつけてみたら、約10%ほど小さくなった。でも大した
差じゃなかったです。残念。

56 :デフォルトの名無しさん:03/01/28 00:29
MinGWとMSYSを入れた後にパッケージ単位でアップデートしようと
するときは、決まったやり方はありますか。
単に新しいパッケージを取ってきて上書きで tar zxf
しちゃえばいいのでせうか。


57 :デフォルトの名無しさん:03/01/28 06:30
>>55
gcc3のiostreamはデカい。小さくしたいならstdioを使う。
どうしてもiostreamが使いたいならDLL化できるか調べてみては?

58 :デフォルトの名無しさん:03/01/28 19:33
>>57
あくまでCygwinの-mno-mingwに限った話だが、
昔はbmingwとか入れないとiostreamやSTL使えなかったんだが、
今のはどうなってるんだろうか?

59 :58:03/01/28 19:34
> あくまでCygwinの-mno-mingwに限った話だが、
スマソ、-mno-cygwinだった。

17 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)