MinGWを使おう

このエントリーをはてなブックマークに追加
1winx ◆htT2l2LViA
フリーコンパイラ「MinGW」
http://www.mingw.org/
2
3winx ◆htT2l2LViA :03/01/15 15:24
>>2
2とか書き込んでる暇あったら語り合おうやw
>>1 gccとmakeのWindows用みたいなものか。

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

何を語りたいのか説明しろや
>>4
Linuxの新ディストリビューションかと思った。
7winx ◆htT2l2LViA :03/01/15 15:34
>>4
ネタスレじゃないのでw

>>5
補足サンクス。
とりあえず、MinGWの使いごごち等話し合いましょう。
正直、VCでコンパイルするより軽いし動作速いです。
うむ、gcc特有の非常に有用なコード(配列へのgotoラベル格納とか)が
書けるのはありがたい。
MFCとか考えなければVCとの互換性は結構高い。
ちみ、winxじゃないか。
VB(なんたら)のスレはどうなった?
10winx ◆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 パッケージ待ちです。
cygwin と何か違うの?
>>12
cygwin.DLLの助けを受けないぶんフリー
そのかわりunix互換性は低い
フリーって言うかGPLの縛りを受けない、だな
100歩譲って過去の事は水に流そう。
でも、↓とどう住み分けるのよ?

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

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

>>15
ここはMinGWスレですからあくまでMinGW限定で行きましょう
-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
>誰も使い方わからなかったみたいで寂れてたよ
話すネタがなかっただけだろ。
>>15
厨房コテってやつは 「自分のスレ」 をほしがるから言っても無駄。
20デフォルトの名無しさん:03/01/17 02:52
Cygwin 使ってるんですけど、
configure で MinGW の方の gcc の環境を
チェックしてくれるようにするには
どうすればいいんでしょうか?
無理?
ruby の configure.in より

[AC_TRY_CPP([
#ifndef __MINGW32__
# error
#endif
], rb_cv_mingw32=yes,rb_cv_mingw32=no)
2220:03/01/17 03:37
>>21
すみません。configure 読めないんです...。
とりあえずは configure いじればできるということでしょうか?
configure.in ね。
autoconf の使い方を調べてみて。
2420:03/01/17 03:51
>>23
また調べてきます...。
ありがとうございました。
configureキモイんだけど、どうにかなりませんか?
なら、UNIXes を統一してください。
27winx ◆htT2l2LViA :03/01/20 01:04
>>18
>>19
前あったmingwスレは俺が立てたんじゃないんだが?
そん時は、俺はタダのロムラーだったしw

てゆーか、下がりすぎだろ
Shift-JISの通らないコンパイラはいらん。
29winx ◆htT2l2LViA :03/01/20 01:08
>>28
回避できるよ
MinGWバイナリならここでしょ。
http://www63.tok2.com/home/bitwalk/download.html#mingw
31winx ◆htT2l2LViA :03/01/20 01:30
>>30
そこは知らなかったよ
>>31
俺は
http://www.bloodshed.net/devcpp.html
のDev-C++の統合環境をインストールしてから、
>>30を上書きして使ってる。
便利だよ〜。ほとんど自動でセットアップしてくれるし。
>>29
リソースコンパイラでどうしても文字化けするので、
それだけbccので変換している俺は何者ですか?
MinGWでWinプログラムを作って実行すると
プロンプトが開いてしまうのですが、回避できますか?
誰か、気づいて、知ってる人がいたら教えて下さい
>>33 俺はバイナリエディタで¥を¥¥に置き換えておいるが、
そういう手があったか。
>>33
windresのソース見るとコード変換のとこがあるから
そこをSJIS決め打ちでUCS-2にでも変換するとできるよ。

>>34
-mwindows
37山崎渉:03/01/23 20:08
(^^)
>>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++のせいでしょうか?
それとも、安定性等を高めるために何かしてるんでしょうか?
教えて君で申し訳ないのですが、知ってる方は教えて下さい
>>38
stripした?
>>38
オプション -s をつけてコンパイルすると stripしたのと同じ効果が得られる。
4138: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
>>41
nmの結果を比べてみると?
4338:03/01/25 03:06
>>42
あぅ、素早いレスありがとうございます
gccの使い方を理解してないのでnmで何を比べてみたら良いのか分かりません
取り敢えず>>38の方で2.0はlibstdc++.aに含まれる
___gxx_personality_v0というシンボルが必要な事は分かりましたが
>>41の方は違いが、あまりにもありすぎて…
でも、>>38で使用してる覚えのない___gxx_personality_v0が気になったので
アセンブラで出力してみました
4438: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
#続きます
4538: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:
#まだ続きます
4638: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:
4738: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になってる事以外は同じでした
やっぱり、コンパイルのオプションを間違えてるんでしょうか?
eh〜ってことは例外処理関連じゃないかなあ。
gccは2.xxと3.xxで例外周りが結構変わってるから、その違いかもしれない。
>>48
例外処理にしても、一体どうやって呼び出してるのでしょうか?
WinMain()は".globl"のようにしてるから参照できると思うのですが…
>例外処理にしても、一体どうやって呼び出してるのでしょうか?
VCのSEH(StructureExceptionHandling)とは違うのかな
VCの例外はSEHと__CxxFrameHandlerの組み合わせだったような気がするけど
5150:03/01/26 14:37
×VCのSEH ○WIN32の
g++だと、使わなくてもリンクするからねえ。
諸般の都合で。
構造化例外処理って言うと0割やメモリ保護等のを処理する時に使う
って認識しかないし、結局使った事ないから分からないけど
何とか、上手く呼び出す方法があると言う事なのかな…
まぁ、何にしても小さいファイルを作る時はMinGW2.0は向いてないんですね
>>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のことはよく知らない
>>54
-fno-exceptionsつけてみたら、約10%ほど小さくなった。でも大した
差じゃなかったです。残念。
56デフォルトの名無しさん:03/01/28 00:29
MinGWとMSYSを入れた後にパッケージ単位でアップデートしようと
するときは、決まったやり方はありますか。
単に新しいパッケージを取ってきて上書きで tar zxf
しちゃえばいいのでせうか。
>>55
gcc3のiostreamはデカい。小さくしたいならstdioを使う。
どうしてもiostreamが使いたいならDLL化できるか調べてみては?
>>57
あくまでCygwinの-mno-mingwに限った話だが、
昔はbmingwとか入れないとiostreamやSTL使えなかったんだが、
今のはどうなってるんだろうか?
5958:03/01/28 19:34
> あくまでCygwinの-mno-mingwに限った話だが、
スマソ、-mno-cygwinだった。
sorceforgeのMinGWのページにこんなんあった。

http://sourceforge.net/project/shownotes.php?release_id=136409
>This is Source-Navigator, an IDE for C/C++/Java/Tcl/Fortran and a
host of other languages.

ちょっと使ってみるか…
61デフォルトの名無しさん:03/01/31 03:14
教えてください。
MinGWってMinimalistだそうですが、
どれくらいシンプルになりますか?

int WINAPI
WinMain(HINSTANCE, HINSTANCE, char*, int)
{
return 0;
}

これって何もしませんが、これでできた
実行ファイルは何Byteになりますか?


もうひとつ、
int WINAPI
WinMain(HINSTANCE, HINSTANCE, char*, int)
{
MessageBox(0, "Hello, world !", "Hello", MB_OK);

return 0;
}
こちらのほうのサイズは?

また、その実行ファイルは、他に
何かしらのDLLを要求してきますか?
>>61
両方とも大して変わらん
結果は同じような事をやってる>>38>>41参考に汁
6361:03/01/31 04:42
つい最近にされた質問と同じことを聞いてました
すみません

「意外と大きい」「よけいなものがつく」と
認識していいのでしょうか?

小さいもの(時計とか)を作りたい時だと
標準ライブラリはよけいなものにかんじます。
ライブラリというかスタートアップ分の大きさなんじゃないの
VCだとエントリポイント指定すればもっと小さくなるし。
>>61
Hello,World! で4096バイト。必要なのはKERNEL32.dllとmsvcrt.dllと
USER32.dll(コレはMessageBox APIで使う)。これで満足か。
教えてクンばかりでいまいちつまらないな。
> MinGWってMinimalistだそうですが、
> どれくらいシンプルになりますか?

この認識からして間違ってるな
Windows の実行ファイルのサイズは確か
1024バイトか4096か忘れたが、
そんな感じの値の倍数になるように調整するのが通例だったかと。
ロード効率の問題だっけ?
6861:03/02/01 05:11
みなさんどうもありがとうございました
>>32
上書きとはdevc++のフォルダ内でmingwを展開すれば良いってこと?

Dev-C++ with Mingw/GCC 3.2 5.0 beta 7 (4.9.7.0)
http://www.studna.cz/go/download.php/fid/685/date/2003-01-02
¿
☻☺
72デフォルトの名無しさん:03/02/03 09:24
>>69 まあそれでもいいと思うが、
↓からDev-C++のみを落として来て、オフィシャルから最新のMingwをいれ、パス設定した方がいいとおもう。
http://www.bloodshed.net/dev/
74デフォルトの名無しさん:03/02/12 07:27
3.2.2リリースあげ
からあげうまうま
76デフォルトの名無しさん:03/02/14 15:33
int sockfd =socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
printf("%d\n",sockfd);
//gcc -mno-cygwin winsock.c -lwsock32
で-1がかえるんですけど
これ間違ってます?
WinSockの初期化が抜けてる。

ココを参考になおしてみたら?
http://www.nakka.com/lib/inet/tcpc.html
78デフォルトの名無しさん:03/02/16 15:33
MinGWのみ(Cygwinなし)で、UNIXから持ってきた以下のソースをコンパイル
しようとすると、mkdir()のシグニチャ不一致でエラーになります。
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <io.h>
 int main(void){ mkdir("./a", 0755); return 0; }
MinGWなら修正なしにコンパイル可能かと思ったのですが、何か勘違いしてます?
勘違いしてる。
MinGWはWin32プログラムを作るためのminimalなセット。
UNIXエミュレーションが欲しければcygwinを使う。
gcc+VC(SDK)=MinGW
8178:03/02/16 16:58
>>79,80 なるほど!
gccでVCのruntimeを利用するnativeな(emulationなし)コードを吐かせることが
MinGWの目的であって、ソース自体はWin32用ってことで納得です。
くだ質に即レス、ありがとん。
>>81
printf( "%lld", int64); が動作しないワナ
誰かWin32APIだけでActiveXコンポーネント使ってる人いる?

世の中MFCとかATLとか使っているコードばかりなので、サンプル希望。
単にCOM呼び出すだけならできたんだけど、各種コントロールをどうやって
張り付けていくのかがさっぱり。
ActiveXコントロールコンテナを手書きするのか・・・豪気だねぇ
いや、コンテナに要求される沢山のインタフェースを実装しないと
いけないのは分かっているし、単にGUI作るだけならFLTKでもGtkでも
使えるんだけど、

- DLL を mingw で作成
- VB5CCE で GUI 全部作る。部分部分で DLL 呼ぶ
- 最後に VB5CCE 製の OCX を mingw 製のコンテナに乗せて完成

てなことを考えてます。半分は実用(OCX作るところまで)だけど、
半分は遊び(コンテナのところ)です。

一番下の所で一回だけコンテナを用意すればいいと思うので、興味も
あってやってみようかと。
86名無しさん@Emacs:03/02/19 22:21
MSYSのrxvtで、デフォルトのフォントが見にくいので、
-fn msgothic-14
とか
-fn Arial-12
とかやってるんですが、なんかフォントの幅が三倍ぐらいになって表示
されてしまいます。フォントって皆さん何使ってどんな設定してますか?
>>85
Code ProjectにAPIだけでIEを埋め込むサンプルあったよ。
コンテナつくりの参考になるかも。
あとWTLのCAxWindowあたりのソースとか。
まあかなり面倒だろうけどがんがれ。
>>86
cygwinで

C:\cygwin\usr\local\bin\rxvt -km sjis -fn 'BDF東雲'-12 -fm 'BDF東雲'-12 -fg orange -bg black -e bash --login -i

とかやってたから"msgothic"じゃなくて"MSゴシック"でいいんじゃないかな…多分。
8988:03/02/19 23:59
ちなみに使ってるフォントはコレ。
http://www.kaoriya.net/#BDFSHINONOME
90デフォルトの名無しさん:03/02/21 06:41
Dev-C++にGTK+のパッケージをインストールして、GTKアプリを作っていますが、
日本語が使えません。ソース中にローケルに関する関数を記述してもだめです。

どなたか助けて
>>90
文字コードをUTF-8にしてコンパイルしてみて。
9290:03/02/22 09:47
Dev-C++&GTK+が作成したスケルトンのソースをK2Editorというフリーのエディタで
読み込みUTF-8で保存し直しても駄目でした。(UTF-8はBOM?ありとか、2種類あるみたいですが)

Win32APIとC言語より、GTK+とC/C++のほうがGUIアプリが簡単に出来そうなのでがんばりたいです。
9391:03/02/22 10:10
うう、申し訳ないです、私もまだまだ勉強不足でした、
回線切って逝ってきます。
9490:03/02/22 10:25
あ、逝かないで・・
9590:03/02/23 22:03
http://www.pp.iij4u.or.jp/~tagami/gtk/gtk.html

ココによるとWin用のGTK+では日本語はだめのようですね。
>>95 のページってかなり情報古いぞ。

9790:03/02/24 12:38
win2000を使っていますが、スケルトンのプログラムでもボタン上の文字列が
すでに文字化けしているのです。
日本語に対応したGUIライブラリの情報キボン。
99デフォルトの名無しさん:03/03/15 19:20
age

    /ノ 0ヽ
   _|___|_      
   ヽ( # ゚Д゚)ノ   下がってろウジ虫ども! 。
     | 个 |      訓練教官のハートマン先任軍曹が100をgetする!
    ノ| ̄ ̄ヽ
     ∪⌒∪

>>101 貴様!俺の海兵隊をどうするつもりだ!
>>102 口でクソたれる前と後に「サー」と言え!
>>103 ふざけるな!大声だせ!タマ落としたか!
>>104 貴様には両生動物のクソをかき集めた値打ちしかない!
>>105 アカの手先のおフェラ豚め!
>>106 まるでそびえ立つクソだ!
>>107 タマ切り取ってグズの家系を絶ってやる!
>>108 じじいのファックの方がまだ気合いが入ってる! 
>>109 ベトナムに行く前に戦争が終わっちまうぞ、アホ!
どうせならちょっとはヒネリのきいたものをきぼんぬ
102デフォルトの名無しさん:03/03/19 12:09
さっきためしてみたけど
やっぱmingw/gdbでもVCでつくられたアプリはデバッガにかけられないの?
debug情報のフォーマットが違うだろ
cygwin でもできないらしいよ。
http://www.sixnine.net/cygwin/cygwin-doc/faq/faq_4.html#SEC120
>>39 >>40
strip ってもんがあるのか!
いい子と知りました。ありがトン

でも、cout << "aaa"; とするだけで 71KB かよ。
(´・ω・`)ショボーン
mingwでも最近は-sharedが使えるんですね。
以前はdlltoolとかめんどくさかったので助かります。
リンカに渡されるオブジェクトファイルの名前とか
知る方法ありませんか?

  #include <iostream.h>
  int main()
  {
    cout<<"aaaa";
    return 0;
  }

これコンパイルしたときに
何がリンクされているのか見てみたいんですが。
108デフォルトの名無しさん:03/03/20 17:16
>>107
-Sを付けて出てきたアセンブルリストを見れ。
>>107
gcc -v -o hello hello.cc
また
gcc -c hello.cc
でhello.o出力
nm -g hello.o
でUが未定義(リンクする必要あるシンボル/関数)

またできたhello.exeを
objdump -p hello.exe|less
とかして眺める
110107:03/03/20 18:46
>>108
みてみますた。
すまぬ。汗の知識がないゆえ、さっぱりわかりませぬ。
でも、なんかみてて勉強になりました。ありがトン。

>>109
おおっ、そんな方法が。
面白そうだ、あとで試してみます。


とりあえず、自分なりに調べてこんな方法でやってみました。
  g++ cout.cpp -v
で g++ が実行しているコマンドすべて表示させて、
ld を実行しているところコピペして、
末尾に --verbose オプションくっつけてld単体で実行してみました。
  ld.exe (長いので省略〜) --verbose

結果、103個ぐらい .o をリンクしてました。

111107:03/03/20 18:47
ld.exe の --verbose で表示された結果からスタートアップっぽい
  crt2.o libgcc.a libmsvcrt.a libmingw32.a libkernel32.a libmoldname.a
この辺は抜かして libstdc++.a のオブジェクトだけでみると

■libstdc++.a の中でリンクしてる香具師ら
 stdstreams.o iostream.o stdstrbufs.o stdiostream.o streambuf.o
 filebuf.o outfloat.o isscan.o ioassign.o isgetline.o genops.o iogetc.o
 ioputc.o iopadn.o ioseekpos.o ioseekoff.o fileops.o filedoalloc.o
 floatconv.o sbscan.o iogetline.o cleanup.o iovfscanf.o ioungetc.o

cout の << とか write とか使うだけでこれだけリンクされてる。
うちの環境だと全部で94KBぐらい。できたexe自体は130KBぐらい。

mingw いいけど、>>107 のコードだけで130KBってのが痛いんだよな。
strip しても 71KB だし。
>>strip しても 71KB だし。
アホか
そりゃC++だからだろ
C++のアセみて理解できる奴とかここにいるのか?
C++やるよりCやっとけよ
113107:03/03/20 19:38
そうか、C++だからですか。
っていわれても全然理由がわからないんですが。
とにかくアセ知らないと理由が説明できないみたいですね。
アセ知らないから、まあいいや。

雑魚なのでCでもやっておきます。
>>113
iostreamがbasic_iosやらistreamやらostreamやらを継承しているから。
使わないコードも仮想関数のためにリンクされてしまう。
bccからMinGW-2.0.0-3に移行しようとしてづまづいてます。
wstringを使おうと、

#include <iostream>
#include <string>
using namespace std;

int main(void)
{
 wstring a;
 return 0;
}

をg++ main.ccでコンパイルすると、
「undefined reference to `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string()'」
とメッセージが出てコンパイルできません。

include\c++\3.2\mingw32\bits\c++config.h の中に
「#define _GLIBCPP_USE_WCHAR_T 1」を有効にしてみたり、
include\c++\3.2\cwhar の中の関数「using ::vfwscanf;」他2つをコメントアウトしてみたりしてますが
うまくいきません。

ヒントだけでも教えてください。
「undefined reference 〜」とでるのは実体が定義されていない証拠。

wstringが必要とするスタティックライブラリを -l で指定すればいけるはず。
なにを指定すべきなのかはわからんけど。
117107:03/03/22 02:09
>>114
うーん、というよりオブジェクトを小分けにしてないのが原因だと思うんだよね。

ostream.o と istream.o で別々になってるのかと思って
ar で libstdc++.a の中身みたら、
  rw-rw-rw- 0/0 30201 Aug 27 22:41 2001 iostream.o
こんなんになってるし。
これじゃあ、istream、ostream 単独で使っても、
iostream.o がリンクされて iostream と同じ大きさになってしまう。
118107:03/03/22 02:33
あと何がリンクされるか見る方法ですけど
  gcc source.c -Xlinker --verbose
これだけでいけました。
>>110 でがんばって説明したのに...

ところで objdump ってなんすか。
面白すぎるんだけど。俺を不眠症にする気ですか(藁
119115:03/03/22 05:00
>>116
ありがとうございます。

実は私もライブラリのことは考えたのですが、テンプレートだと全部ヘッダファイルに宣言してあるものと思い込んでいました。
もう自分の能力でできることはやり尽くしているので、とりあえず-lで適当に手当たり次第ライブラリをリンクしてみます。
120115:03/03/22 05:23
とりあえず、以下のコマンドでやってみました
g++ main.cc -ladvapi32 -lbfd -lcap -lcoldname -lcomctl32
-lcomdlg32 -lcrtdll -lcrypt32 -lctl3d32 -ld3dim -ld3drm
-ld3dxof -lddraw -ldinput -ldlcapi -ldplayx -ldsetup
-ldsound -ldxguid -lfrtbegin -lg2c -lgdi32 -lglaux -lglu32
-lglut -lglut32 -lgmon -lhistory -liberty -limagehlp -limm32
-liphlpapi -lkernel32 -llargeint -llz32 -lm -lmapi32 -lmfcuia32 -lmgmtapi
-lmingw32 -lmingwex -lmingwthrd -lmmalloc -lmoldname -lmpr
-lmsacm32 -lmsimg32 -lmsvcp60 -lmsvcrt -lmsvcrt20 -lmsvcrt40 -lmswsock
-lnddeapi -lnetapi32 -lntdll -lobjc -lodbc32 -lodbccp32 -lole32 -loleaut32
-lolecli32 -loledlg -lolepro32 -lolesvr32 -lopcodes -lopengl32 -lpenwin32 -lpkpd32 -lpsapi
-lrapi -lrasapi32 -lreadline -lrpcdce4 -lrpcns4 -lrpcrt4 -lscrnsave
-lscrnsavw -lsecur32 -lsetupapi -lshell32 -lshlwapi -lstdc++ -lsupc++ -lsvrapi -ltapi32
-lth32 -lthunk32 -lurl -luser32 -luserenv -luuid -lvdmdbg -lversion -lvfw32
-lwin32spl -lwininet -lwinmm -lwinspool -lwinstrm -lwow32 -lws2_32 -lwsock32 -lwst -lgcc

結果は、同じでした。

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccI1aaaa.o(.text+0x26):main.cc:
 undefined reference to
 `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::basic_string()'
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccI1aaaa.o(.text+0x35):main.cc:
 undefined reference to
 `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_string()'

(;_:)
121107:03/03/23 02:04
>>120
すげえ、感動した。というかワロタ。

単純に「ない」ってことも考えられる。
前に libole32.a にあるはずの CoTaskMemFree もなかったし。
122115:03/03/23 03:03
>>121
どもです。やっぱないんでしょうか。
初級程度の人間なので、
とりあえず、今はwstringの使用をあきらめてプログラムを書いています。
boost::regexを使いたいな、と思っていたんですが…。
何か思いついたら、試してみます。
またよろしくお願いします。
123107:03/03/26 01:13
115さんや115さんや。

今日、職場のとなりのC++使いにwstringのこと聞いたら、
とりあえず MinGW-1.1 の場合だけど

MinGW-1.1\include\g++-3\string の
//typedef basic_string <wchar_t> wstring;
のコメントアウトをはずせだって。とりあえず、これでコンパイルは通る。

あともう一点。
MinGW-1.1\include\g++-3\std のbastring.h の300行目付近にある
public:
const charT* c_str () const
{ if (length () == 0) return ""; terminate (); return data (); }

の return "" の部分を、wstringの一文字のサイズ分 \0 返せだと。

{ if (length () == 0) return (const charT*)"\0\0\0\0"; terminate (); return data (); }

これでうまくいくらしい。
とりあえず UNICODE (だっけ?) を考えて4文字 "\0\0\0\0" としてみた。

まあ、115さんは、もうこのスレのことを頭の片隅にもはいってないと思うが。
124107:03/03/26 01:18

   | \
   |Д`) トッ,トリアエズオドッテミヨウ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(´Д`;)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く       タン


   ♪    Å
     ♪ / \   ランタ ランタ
      ヽ(;´Д`)ノ  ランタ タン
         (へ  )    ランタ タンタ
             >    

小心者なので age られない漏れ
115さんや115さんや。
STLportを入れるとwstringが使えるようになるという噂も。
未確認。
>>123
> とりあえず UNICODE (だっけ?) を考えて4文字 "\0\0\0\0" としてみた。

L"\0"のほうが適切かと…
127 ◆hMJAPH9PWA :03/03/26 23:47
>>126
basic_string<char>のことを考えると、>>123でいいでしょ。
128115:03/03/29 10:41
>>123>>125>>126>>127 ありがとうございます。そして、レスが遅れてすいません。


>MinGW-1.1\include\g++-3\string の
>>//typedef basic_string <wchar_t> wstring;
>>のコメントアウトをはずせだって。とりあえず、これでコンパイルは通る。

 115の中で試みたことを全て書いてなくて、申し訳ありませんでした。
 実は115で質問する前にやはり同じような内容のHPを見まして、
コメントアウトしようと探したのですが、
MinGW2.0ではC++関係のライブラリの構成が変更されているようで、
stringの場所そのものもinclude\C++\3.2\string となっています。
wstringのtypedefは検索してみると、
include/C++/3.2/bits/stringfwd.h:64行目
stringと一緒に宣言してありましたが、コメント化されていませんでした。

basic_string::c_str()部分も、やっぱり位置が変更になっているようです。
宣言部分は、include\c++\3.2\bits\basic_string.hの778行目あたりで、

// String operations:
const _CharT*
c_str() const
{
// MT: This assumes concurrent writes are OK.
size_type __n = this->size();
traits_type::assign(_M_data()[__n], _Rep::_S_terminal);
return _M_data();
}

と書いてありました。>>123>>126>>127で書かれたような問題を解決するために
変更されたのかな?とも思いましたが、時間があれば調べてみます。
129115:03/03/29 10:43
>>125
STLportはインストールしましたが、ものの見事に玉砕しました(;_:)
あまりにエラーが多すぎました。
まず、STLPortがGCCのC++ヘッダを探すときに、include\g++-3\を
検索しているようでしたので、該当する部分を強引にinclude\C++\3.2
に訂正しました。一応ぐぐると次のようなMLメッセージがありました。
ttp://www.stlport.com/dcforum/DCForumID6/1136.html
の中に同じようなことが書いてありました。これでファイルが見つからない、というエラーは消えましたが、相変わらずコンパイルできません。
また、上のHPの中で、
#include <locale> を加えろみたいなことが書いてありましたが結果は変わらず。
そもそも<string>だけじゃなくて<vector>とかも使えない状況でした。
また、STLPortのiostream関係については一応使わないように設定したつもりです。
(makefileも通らないし)

 私のやり方も悪いのでしょうが、MinGW-2.0になってというかGCC3.2になって
C++関係の構造が変わっていて、それが影響しているのかなとも思います。

 皆さんの意見を読んで、とりあえずここはMinGW-1.1をインストールしてみて
同じ事を試すのが良いのかもしれない、と考えています。また報告します。

 色々ありがとうございます。
130デフォルトの名無しさん:03/04/17 01:17
あの, 拡張子が .dll.a なのはスタティックライブラリなんじゃぁないんでしょうか?

コンパイル時に .dll.a のファイルを -llibrary とかって指定してやっても
undefined reference の嵐なんですが・・・
どうすれば良いのでしょう?どなたか教えて頂けませんか?
>>130
> あの, 拡張子が .dll.a なのはスタティックライブラリなんじゃぁないんでしょうか?
それはdllのインポートライブラリ。

> コンパイル時に .dll.a のファイルを -llibrary とかって指定してやっても
> undefined reference の嵐なんですが・・・
> どうすれば良いのでしょう?どなたか教えて頂けませんか?
まずちゃんとエラーメッセージを書くことだな。
132山崎渉:03/04/17 15:15
(^^)
134山崎渉:03/04/20 04:35
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
136デフォルトの名無しさん:03/04/22 05:24
mingw で使える BSD make (pmakeとも呼ばれるのかな)
どこかにありませんか?
コンパイルすれば。
138136:03/04/22 17:16
NetBSD のをとってきてコンパイルしようとしたのですが、
ar関係などmingwにはないものが必要そうなので、
あればそれを使った方が早いかなと。
solaris など普通のUNIXなら自分でビルドしてるんですけど。

引き続き情報お待ちしてます。
だいぶ昔、vectorにあった様な。niftyかもしれんが。
>>138
クロスコンパイルするとか。
>>138
cygwin でコンパイルするとか。
Dev-C++を使ってWin32SDKの勉強をしようと思ってるんだけど、
MSのサイトから落とせるPlatformSDKって必要なのかな?
それとも、Dev-C++にはMingwが入っているから必要ないのかな?
誰か教えて下さいませ。
ヘッダとかインポートライブラリに関してはSDKをMSから持ってくる必要はない。
が、ドキュメントの類が必要ならMSから持ってくるべし。
>>144
レスありがとうございます。
「ドキュメントの類が必要なら・・・」と、いうことですが、ドキュメントというのは、
APIリファレンスのようなものでしょうか?そうであれば、API関係の書籍は持ってないので、
MSから落とす必要がありますね。もし分かれば、よろしくお願いします。
<血液型A型の一般的な特徴>(見せかけのもっともらしさ(偽善)に騙されるな!!)
●とにかく神経質で気が小さい、了見が狭い(臆病、二言目には「世間」(「世間」と言っても、一部のA型を中心とした一部の人間の動向に過ぎない))
●他人に異常に干渉して自分たちの古いシキタリを押し付け、それから少しでも外れる奴に対しては好戦的でファイト満々な態度をとり、かなりキモイ(自己中心、硬直的でデリカシーがない)
●妙に気位が高く、自分が馬鹿にされるとカッと怒るくせに平気で他人を馬鹿にしようとする(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはたいてい、内面的・実質的に負けていることが多い)
●権力・強者には平身低頭だが、弱者に対しては八つ当たり等していじめる(強い者にはへつらい、弱い者に対してはいじめる(特に人が見ていない場合))
●あら探しだけは名人級でウザく、とにかく否定的(例え10の長所があっても褒めることをせず、たった1つの短所を見つけては貶す)
●基本的に悲観主義でマイナス思考に支配されているため性格が鬱陶しい(根暗)
●何でも「右へ習え」で、単独では何もできない(群れでしか行動できないヘタレ)
●少数派の異質・異文化を理解しようとせず、あるいは理解を示さず、排斥する(差別主義者、狭量、視野が狭い、多数派=正しい と信じて疑わない)
●集団によるいじめのリーダーとなり皆を先導する(陰湿かつ陰険で狡猾)
●他人の悪口・陰口を好むと同時に、自分は他人からどう見られているか、人の目を異常に気にする(自分がそうだから容易に他人を信用できない、ポーズだけで中身を伴っていない、世間体命)
●たとえ友達が多くても、いずれも浅い付き合いでしかなく、心の友達はおらず孤独(心の感度が低く、包容力がなく、冷酷だから)
●頭が硬く融通が利かないためストレスを溜め込みやすく、また短気で、地雷持ちが多い(不合理な馬鹿)
●たとえ後で自分の誤りに気づいても、素直に謝れず強引に筋を通し、こじつけの言い訳ばかりする(もう腹を切るしかない!)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男前やのに、なんでや!(あの野郎の足を引っ張ってやる!!)」)
147デフォルトの名無しさん:03/04/29 11:50
GCC 3.2.3 RC age
MinGWってDirectXつかえるの?
>>148
SDL使うのが楽。詳しくはここ参照

http://cefiro.homelinux.org/topics/SDL/setup.html
150148:03/04/29 14:28
MSYSからMinGWが認識されない...
>>150
認識されん、ちゅうのがイマイチピンと来ないけどこいういう事?↓

http://cefiro.homelinux.org/resources/doc/MinGW-1.1/setting-01.html
152148:03/04/29 14:43
>>151
fstabってファイルにMinGWのパス書いて
MSYSを再起動してみたけれど
MinGWディレクトリが空のまま
>>152
mountってコマンド打った時、

f:\mingw on /mingw type user (binmode)

って感じの行はある?無かったらfstabがアヤシイ。
154148:03/04/29 15:29
>>153
なぜかOS再起動して
MinGWとMSYS入れ直したら直りました

#原因がわからなくて気持ち悪いけど...


さっそくSDLの方ためしてみます
155148:03/04/29 15:43
ってよく考えたら
msys/1.0/mingwに
試しに入れてみてたんだった

>f:\mingw on /mingw type user (binmode)
は無いや...


>>152
fstabの内容ってこれで大丈夫ですか?(MinGWはc:\MinGWにインストール)

c:/MinGW/mingw
156148:03/04/29 15:46
修正
c:/MinGW        /mingw
>>156
それでok。

#もし興味があればコイツをビルドしてみないか?
#今んとこ俺はMinGWでは上手くかなかった…
#http://www.asahi-net.or.jp/~cs8k-cyu/windows/rr.html
158デフォルトの名無しさん:03/04/29 16:43
MinGWでGUIアプリを作ってみたいのですがMinGWで使える
C++Builderのようなツールやライブラリはありますか?
さすがにそこまでは望みすぎでしょうか

>>156
うちと同じです。(c:\mingw /mingw)
159148:03/04/29 16:47
WideStudioがたしかMinGW使ってたと思う

http://www.widestudio.org/index.html
160148:03/04/29 16:53
>>157
ビルドできましたよ。
ただ何故かサイズが倍近くに(笑)
161158:03/04/29 16:55
>>148
素早いレスありがとうございます。
早速挑戦してみたいと思います。
>>158
こっちのほうがいい。→DevC++
http://www.bloodshed.net/
ちょっと古いけどDev-C++の日本語ヘルプのページ
http://www.geocities.co.jp/SiliconValley-Oakland/3842/dev.html
164158:03/04/29 20:28
WideStudioをダウンロードしてサンプルを
コンパイルしておりました。ウィンドウが
簡単に作れてなかなかの優れものですね。

>>162
ありがとうございます。
Dev-C++のWebページを見てみると GUIツールキットとして
The Gimp Toolkit(GTK+) , WxWindows , Fast Light Toolkit(FLTK) の
3種類が利用できるのですね。どれが良いのか…迷ってしまいますが
こちらも使ってみたいと思います。レスが遅れて申し訳ありません。

GUIツールキットっていろいろあるんですね。
開発コミュニティの方々の開発力に敬服です。
finalburnビルドできた方いらっしゃいますか?
どーもまともに動いてくれない…
ttp://www.finalburn.com/source.html
unsigned long long int型の変数を画面に16進数で表示したいのですが、
printf("%#16x\t%#16x\n", l, r);
だと、下位32ビットまでしか表示されません。
どうすれば64ビット全て表示することができるのでしょうか?
どなたかよろしくお願いします。
167ll:03/05/01 02:52
>>166
man 3 printf
168166:03/05/01 03:35
>>167
レスありがとうございます。manページも読んでやってみたんですが、やはりうまくいきません。
printf("%#16.16llx\n", 0xFFFFFFFFFFFFFFULL);
とやってみたのですが、
0x00000000ffffffff
と表示されてしまいます。いったい何がおかしいのでしょうか?
>>168
> いったい何がおかしいのでしょうか?
MSVCRTの実装。
MSVCRTではllxではなくI64xかな
>>169,170
うまくいきました。ありがとうございました。
172デフォルトの名無しさん:03/05/04 01:03
Buildできたのであげまん
>>172
何がビルドできたん?
174デフォルトの名無しさん:03/05/07 04:12
mingwで、Cソース全体をpascal(stdcall)呼び出しにするって
オプションありませんか?
ちょうどVisualC++の/Gzオプションみたいなやつです。
あ、解決しました。
>>174
どーやって解決したのかを書くのがスレ汚し者のせめてもの償いだと思うのだが。
177174:03/05/07 10:54
>>176
ハァ?解決してねーよばーか
なにがスレ汚しだ、ゴミに言われたかねーわな
びっくりするほど見え見えの釣りですね
・174の名前を語っている(-2)
・口調が汚い(-3)
・sageている(-1)
釣り師、失格だな(w
mingwでDX9のプログラム勉強したいんだけど、
いいサイトありまつか?
>>180
mingwで最新版DirectXは…
ヘッダとかの面でキビシくないか?
バージョンが3.2.3になってるね。
http://www63.tok2.com/home/bitwalk/download.html#mingw
MinGWとCygwinのgccでconfigureのオプションが微妙に違うので、
(Cygwin側に-mno-cygwinつけても)C++のライブラリが共用できない。不便。
みなさんどうしてますか。
 MSYSもここでいいのかな?

 MSYSを入れながらここ読んでWideStudioをすぐに知り入れたものの
サンプルのHello,world.が動かなかったのでMSYSの構築の続きやろうと
したら起動出来なかったので慌ててWS削除。
 いったいどうすればいいんだ。

 MSYSですけど、要はbashなんですね。
 で、昔少しいじった事(cshだったけど)あるLinux教本取り出してチマチマ構築
始めたのですけど、moreやらemacsやら、欲しいものは微妙に削ってあるんですね。
 と言うか、窓環境のエディタ使えなくて、とてもシオシオ。
 viなんて、5年近く触ってないから完璧に忘れてました。

 でも、久し振りのコマンドラインは気持ちいいなあ♪
185デフォルトの名無しさん:03/05/19 13:03
age
>>184
>  MSYSですけど、要はbashなんですね。
かなり誤解を招く表現だな。
訂正。
× MSYSを入れながらここ読んでWideStudioをすぐに知り入れたものの
○ MSYSを入れながらここ読んでWideStudioを知りすぐに入れたものの

>>186
 すいません、本気で誤解してるかも。
 環境文字列いじりながら、どう見てもbashだよなあ、とか思っているのですが。
 と言うか、sh --help だし。
 統合環境と聞き及び入れたのですが、どうやら擬似環境みたいですね(^^;

 取り敢えず、日本語使えないみたいで現在激しく困っています。
 DOS窓上で書いたMinGW用のCソースが、viで正しく読めません(^^;
 似非英語やローマ字コメントだなんて、8ビット時代以来だ・・・。
 現在、日本語環境は存在しないのでしょうか?
>>187
Vim を multibyte 使えるようにコンパイルすればいいだけかと。
Vim のソースのどっかのファイルに何かが書いてあった記憶しか
無くてどうするのか忘れたけど。確か MinGW の場合は configure
じゃなかったような記憶がかすかにあるけど、思い違いかも。
>>188
>Vim を multibyte 使えるようにコンパイルすればいいだけかと。

 ああナルホド、それだけで良かったんですね。

 ・・・って、当方LS_COLORの設定に四苦八苦した程度の椰子でして、
ウニ上の再コンパイルなんて経験サッパリ(^^;
 取り敢えず、sorceforgeでmsysと必要っぽいDTKのソース取って来たので、
まずはperlをconfigure・・・。
 "THIS PACKAGE SEEMS TO BE INCOMPLETE.."とかって蹴られました(笑)。

 何で不完全なのかよく分かりませんが、解説サイトでも探しながらマターリ
頑張ってみますです。 気力が尽きる前に解決すると良いなあ(^^;
 指針提示、どうもです。
>>184
more の代わりに less 使えばいいぢゃん。
191デフォルトの名無しさん:03/05/24 19:15
>>190
知ったか厨房はほっとけよ。
添付のrtf文書すら読んでないから、MinGWが何かもわかってないし。
わからないから素直に教えてくださいといえばいいのに、コンピュータに詳しい振りして笑わせやがる。
文系のヘタレだな
公式HP更新したね。
ところで、MSYS DTKってなに?
用途は何なん?
CYGWINとMINGWの区別がついてませんね。
エミュレータ-じゃないんで、コマンドプロンプトから
C>gmake
でいいんですよ。
MinGWの中のgmakeなどいない!
196デフォルトの名無しさん:03/05/25 12:29
mingw-runtimeの中にstlって含まれているんだよね。
stlってruntimeが要るんだっけ
>>196
>mingw-runtimeの中にstlって含まれているんだよね。
含まれてない

>>197
>stlってruntimeが要るんだっけ
必要ない


ヤレヤレ
199山崎渉:03/05/28 12:45
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
200デフォルトの名無しさん:03/05/29 00:24
保守
201デフォルトの名無しさん:03/06/06 19:12
GCC 3.3 Mingw、オフィシャルじゃねーけど
http://www.thisiscool.com/gcc33_mingw.htm
202直リン:03/06/06 19:13
203winx ◆WMNkN5SXlM :03/06/06 19:15
まだあったか、このスレ(゚Д゚)ポカーン
STL を使ったプログラムで、 VC++6 と mingw で実行ファイルのサイズが大幅に違うんですが、どうして?
#include <iostream>
using namespace std;
int main(void)
{
cout << "test" << endl;
return 0;
}
これをコンパイルしてみると、
VC++ => 65536Byte
mingw => 418026Byte
となります。6倍以上の差が…
>>204
コンパイラが違うんだからサイズが違ってもぜんぜん不思議ではない。
それ以前に strip くらいしれ。
>>205
strip したら mingw のほうは半分くらいのサイズになりましたが、
それでも VC と 3倍近く違います。
(比較対照にならないだろうけど) linux の g++ だと 8KB くらい。
実装が違うとはいえ、
ここまで違いがでるのがイマイチ納得できない。。
>>206
DLL と so(Linux の共有ライブラリ) の存在について少しは考えれ。
>>207
STL と共有ライブラリって関係の?
必要は発明のママン
iostream ≠ STL
std::coutがあるMSVCP60.DLLとか。
VC++だと/MD付ければ>>204のやつでも16kまで落とせる。
mingwは使ってないみたいだけど。
MinGWというかGCC?で
/MDオプションに相当するのはなn?
/MDオプションってなにかまず説明しれ
/MDはGCCでいうところの-staticの逆で
標準C/C++ライブラリを動的リンクさせるオプション。
>>204の場合MSVCRT.DLL(C)とMSVCP60.DLL(C++)が使われる。
初期設定だと静的リンクされる(VC++ランタイム不要)。
-Bdynamicかな。
でも.dll.aとか.dllを優先するからデフォルトで動的リンクするし、
通常libcygwin1.dllは必ず動的リンクされるけど。
MinGWなんだからlibcygwin1.dllは使わないんじゃ…
そりゃそうだ。使うのはmsvcrt.dllか。
218ペルシア語:03/06/18 01:45
米と玉葱たまねぎのみじん切りを油脂で炒め、出し汁と
肉・野菜などを加えて炊いた中近東起源の米料理。
なかなか3.3にならねえな。
3.3になって良い事あるの?
>>220
プリコンパイルヘッダが使えるからコンパイルが激速だと聞いたが。
>>221
それは3.4以降からだと思われ。
>>221のはccacheより速い?
>>223
そもそもccacheとは別のアプローチなので併用できる(ハズ)
激速というか、ようやく世間並みになった
226デフォルトの名無しさん:03/06/21 16:11
gdbでインラインアセンブラに突入したときに、
その部分のインストラクションを表示する方法はありませんか?
227デフォルトの名無しさん:03/06/21 16:21
あ、解決しました
display/i $eip
228デフォルトの名無しさん:03/06/21 17:08
ふう、やっとmingwに移植できた。
AT&T形式のインラインアセンブラは極めたといっていい。
229_:03/06/21 17:10
230デフォルトの名無しさん:03/06/21 17:21
readlineの組み込み方を教えてください
>プリコンパイルヘッダが使えるからコンパイルが激速

今時のCPU速いから必須だとはあまり感じないけども
でも速くなるなら歓迎

ところで printf("%lld") が long long int を
出力してくれないのですけど (MSVCRT.DLL の問題)
これは直ってないのかな
"%lld"を"%I64d"に変換する関数を自作するのも
考えたけど officialのほうでサポートしてもらえたら…
C99への準拠よりもVCとの互換性を優先してる…というか、
printf()系全部作り直しはせんだろ。
>>231&&232
まぁ、For Windows だからね…
どちらの互換性をとるかは悩ましいねえ・・・
実行ファイル(*.exe)にアイコンって設定できないの?
リソースとしてリンクすればいいよ
最も若いIDのが使われるんじゃなかったかな
あーしまったここMinGWか
やり方知りません。スマソ
漏れはwindoresを使ったがな
エミュレータのソースは勉強になるよ
.rcを書く
windres使ってコンパイル
リンク時に一緒にリンク

ID(適当) ICON DISCARDABLE "ファイル名"
.rcはこんな感じでよかったかな
最近書いてないから忘れた

面倒ならリソースエディタでもいいんじゃねーの?
240デフォルトの名無しさん:03/07/12 10:13
MinGW 3.0.0 RC1 age
241山崎 渉:03/07/15 09:54

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
242デフォルトの名無しさん:03/07/18 20:38
MinGW 3.0.0 RC3 age
243デフォルトの名無しさん:03/07/18 22:44
み ん ぐ う age
244デフォルトの名無しさん:03/07/21 08:05
スレたてよろ。


MinGWStudio(´゚д゚`)タイ人?

(´゚д゚`)えっ?
ムエタイ戦士?

公式
http://parinya.homeip.net/index.html

MinGW Developer Studio's Quick tutorial
http://parinya.homeip.net/docs/index.html
某OSASKのセルフ開発環境はMinGWベースだそうです。
246デフォルトの名無しさん:03/07/26 22:45
>>244
おお、良さそう。

          /// /Vヽ
          ll l lノノノ)) 〉 ソコデミキプルーンダ
           ヽl ´∀`ノ||
           /ヽ!トv^ リ
          ヽ lY) 〉!
           ヽlY)i l |
             ⌒
             ⌒
             ⌒     
          /// /Vヽ   ボッシュート
          ll l lノノノ)) 〉
           ヽl l´∀`ノ||
     ____/ヽ!トv^ リ____
    \     ヽ lY) 〉!       \
      \     ヽlY)i l |        \
mingwをダウンロードしようと思い、ダウンロードするホームページに行ったのですが、
MinGW-2.0.0-3.exeとMinGW-3.0.0-rc3.exeがあるのですが何が違うのですか?
rcの意味も知らないような奴は環境設定もロクに出来んだろうから
MinGWは諦めて、おとなしく日本語チュートリアルのついてるゲイツの開発環境でも買いなされ
rc = run command
Radio Control
253249:03/08/01 20:55
>>250
すいません何が違うのですか?
違いが分からない → つまり、現在の249にとっては違いが無い
∴ 好きな方を使えば良い
255249:03/08/01 21:33
>>254
何が違うか教えて下さい。
古い新しい
257249:03/08/01 21:41
どっちの方が新しいのですか?
http://www.mingw.org/download.shtml
日付けが書いてありますね
259249:03/08/01 21:56
>>258
ありがとうございました。

それで・・・rcって何ですか?
RC(Release Candidate)
Radio control Car
Romane-Conti
Racing Car
264山崎 渉:03/08/02 02:17
(^^)
※ラジコンは増田屋コーポレーションの登録商標です
266デフォルトの名無しさん:03/08/02 12:09
へへへ
RCといえば
田宮RCカーグランプリなんだよ!
ぼけが!
おまえら優しすぎです
268デフォルトの名無しさん:03/08/02 20:16
☆ ☆ ☆ http://www.gals-cafe.com ☆ ☆ ☆

りさちゃんですっ☆みんな元気ぃ?夏だねっ!

あたしね、今アメリカにいるんだけど、、、えへっ(*>▽<*)

アナタに逢いたくて、こんなバイト始めちゃったヨ♪

りさに逢いに来てくれたら、7日間も会費無料サービスしちゃうし、

さらにさらに10分間も無料なんだよ! Σ(@o@)!!
アナタにだけの特別大っサービス♪絶対来てね!
二人っきりでたっくさん楽しいことしようよ♪まってるよ(^.^)/
☆ ☆ ☆ http://www.gals-cafe.com ☆ ☆ ☆
269安全地帯:03/08/02 21:25
質問です。
mingw_toola_0.29.exeというファイルをダウンロードしようと思うのですが、
ダウンロードしても途中でダウンロード完了とでて中途半端なファイルしかダウンロード
できないのですが誰か原因を教えて下さい。
MinGWってShift-JISは通らないもんな。
MinGWでShift-JISを通るにはどうすればいいんだ?
質問ですコンパイルしたら。

ldが原因でLD.EXEにエラーが発生しました。

とエラーが出るのですがどうすればエラーがなくなりますか?
毎日早朝マラソンする
mingw + MSYS でも cygwin の setup.exe や Linux の rpm + apt
みたいなパッケージ管理できるものがあればいいのに…

とか思うのはへたれですか?
MAMEをダウンロードして(ソース)MinGWでMakeしたのですが、

[obj/mame/windows/wind3d.o] Error1

とでるのですが誰か分かりますか?
MinGW-2.0.0-3の全ソースをダウンロードしたいのですが、
どこにありますか?
>>277
cygwin の setup.exe ベースのものを作ろうと思ってたことがあるけど
メンドイからやめた。誰か、良いの作って。

>>279
個別パッケージのソースならあるけどそんなものは無い。
それに相当する個別パッケージのソースを落とせ。
MSYSを起動したのですが

コマンドまたはファイル名が正しくありません

と言われてMSYSを起動できないのですが誰か分かる人いますか?
馬鹿かオマエは?
283281:03/08/08 20:54
>>282
ちと意味がわからないんですが・・・
起動した事をどうやって知ったんだろう・・・
また日本語の苦手な人がいる
そもそも起動って何だろう。
287281:03/08/09 15:11
普通MSYSをクリックしたらシェル環境になるんじゃないのですか?
俺は281じゃないんだが
俺もMSYSことあまり分からないので
MSYSのこと詳しく載ってるホームページとかありませんか?
289デフォルトの名無しさん:03/08/12 01:15
午後のこーだのDLLをコンパイルしてみましたが、標準でインスコされるDLLより早くなりません。
午後BENCHでは勝ててますが、55分のWAVをエンコすると、標準DLLに負けてしまいます。(約十秒差)
早くなるコマンドラインオプションを教えていただけないでしょうか。

システムは、OS:WinXPHEsp1 CPU:AthlonXP1700+ MinGWは最新のRCです。
同じバージョンのコンパイラでやらんことにはなあ・・・
>>288
本家
bitwalk氏のページ

>>289
-O999 -mcpu=athlon-xp
MinGWは速さを競うことを主題にしていないと思われ
VCか、Intelのコンパイラ買え
-fomit-frame-pointer はかなり効くよ。
あと -O9 でも enable にならないフラグって何かあったかな…
294289:03/08/12 07:42
みなさん、有難うございました。
今の最新のgccのソースをコンパイルしたいのですが
そういうことを詳しくのってる所いくつか教えて下さい。
Windows2000におけるgcc-3.2.3の再ビルド方法
http://homepage1.nifty.com/kuuku/gcc-sjis/howtobuild.html
297295:03/08/12 21:41
>>296
すいませんほかにもありませんか?
英語のホームページのとこでも結構です。
298289:03/08/13 00:30
マリンキャットさんのところのソースではなく、へるみさんのところにあるソースを利用したら
早くなりました。何が違うのかは解かりませんが。

オプションは下記のようにしました。もとから記述されていた部分から、“athlin-xp”のみを変更しました。
CFLAGS = -Wall $(PROF) -O6 -mcpu=athlon-xp -march=athlon-xp -pedantic -pipe -fstrength-reduce
-finline-functions -fomit-frame-pointer -funroll-loops -ffast-math -foptimize-register-move
-fdefer-pop -mfancy-math-387 -DNDEBUG

-O9は、なぜか遅くなりました。

55分のWAVファイルのエンコ結果(VBR&高音質)
標準DLL: 7分12秒76
MinGWでコンパイイルしたDLL: 7分6秒23

アドバイス有難うございました。
299デフォルトの名無しさん:03/08/13 00:38
-pedanticはいらないだろ。
300289:03/08/13 00:43
>>299
意味の無い記述ということですね。
そんなこといったら-Wallだって開発者向けのオプションだからいらん。
むしろいらないのは-O2ではデフォルトで有効の
-fstrength-reduce -foptimize-register-move -fdefer-pop
>>296
それを読んで3.3.1rcをSJIS対応にしました.
これって配布した方が良いのかな?
303289:03/08/14 00:59
いろいろテストしましたが「-O1」より上の最適化(-O2以上)をかけると、問題が出ることが解かりました。
具体的のどのオプションが問題を起こしているのかはまだ解かりません。

不具合は、CPU拡張命令を、すべてOFFにしてエンコすると、音がヘロヘロになってしまうというものです。
>>303
そういうのは午後コーダ側のバグっぽいね。
#ifdefの切り分けに失敗してる可能性が高い。
最適化によって意図したスタック操作が省かれたりもする。
-O2もそうだけど、-fomit-frame-pointer も怪しい。
よくあるのがインラインアセンブラ__asm__で、
"mempry"指定していないとか。
"memory"だった。
306289:03/08/14 01:08
>>304->>305
どうもありがとうございます。いろいろ試してみます。
gccソースをコンパイルしたいのですが
configureをどうすればいいのでしょうか?
実行する
../gcc/configure --help
まずはここからだ.
↑なんという的確なレス
311310:03/08/15 00:50
>>308のことね

>>309は平凡のレス
>>308-312 なんという無意味なレス
しかし>>307はほとんど何をしたいのか書いていないも同然な訳で。レスが無意味になるのもやむなし
314山崎 渉:03/08/15 15:28
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
315289:03/08/15 21:48
>>313
configureでmakeファイルが作れると思うのですが・・・
>>315
>>308はconfigureでmakeファイルを作る具体的な方法を提示している。
よって極めて適切なレスだろう。
317289:03/08/16 14:49
>>316
その記述を教えてくれませんか?
Windows2000におけるgcc-3.2.3のコンパイル方法でconfigureをやったのですが、

comand not foundが出まくっていちおうMAKEFILEは作成してたのですがmakeしてもできない
のでですが・・・
>>318
その質問で本当に自分の環境を説明できていると思っているんだったら、
悪いことはいわないから自分でgccをコンパイルするなんて諦めて
配布されているバイナリを使えよ。
320318:03/08/17 16:32
>>319
OS WindowsMe
コンパイル MinGW
ですが・・・
322318:03/08/17 18:23
gccソースはgcc-3.2.3-20030504-1-src.ta.gz
ですが・・・
それで何をききたいんだ?
「僕ちゃんcomand not foundがでて困ってるの」といったら
誰かが"comand"の在り処を教えてくれるとでも思ってるのか?
> OS WindowsMe
> コンパイル MinGW
情報少なすぎ。バイナリあるんだからソレ使ったらどうよ。

とりあえず、何で、comand not found になるのか自分で調べろ。
で、原因が分からないんならソースから作成なんてヤメロ。マジで。

環境さえ整っていれば、>>296 のページに書かれている
configure で問題無くコンパイル出来るはず。
しかし、コピペできるのに何で rxvt 使わないんだろ。
>>324-325s/comand/command/g
327324:03/08/18 04:08
>>326

>>318がcomand not foundで困っているといってる。
だからわざわざ"comand"って引用符つきでかいてるだろ。
勝手に変換しないでくれ。
328318:03/08/18 17:09
すいませんエラーを間違えました、

エラーは

sed: not found
=no: not found
sed: not found
=yes: not found
とかでまくって、
最後に
cd: HOME not set
*** cannot fond config.sub.

とエラーが出ます。

まずgcctestというフォルダーの中に解凍したgccソースの入ったフォルダーを入れて。
(フォルダーの名前はgcc)
そしてmsysのbinの中のsh.exeでまず初めに

cmdを押してcd\gcctest\gccとしました。
それから296ページの長い--with-gccとかのコマンドを入れたのですが
上のようなエラーになりました。
329325:03/08/18 19:00
> sed: not found
sed が無い。又は PATH が通ってない。

> cmdを押してcd\gcctest\gccとしました。
ハァ?
cmd を入力してコマンドプロンプト上げている時点で >>296 とやり方が違う。

どう考えても今のスキルで gcc をソースからコンパイルは無謀。
とりあえず、MSYS の使い方を先に理解すべきだと思うぞ。
言われたことをやらずにやつあたりしてるバカのいるスレはここですよ。
ですが・・・
332318:03/08/18 21:07
>>329
分かりました。まずmsysを理解しようと思います。
すいませんがmsysの詳しく載ってるホームページ(説明書みたいな)知りませんか?
おまえら優しすぎですね
夏休みはあと二週間もあるんだから
今から息切れしないようにな
保守
MinGW Developer Studio の(>>244が教えてくれた)ページが
なくなっちゃってるよ。
どうなったの?消滅ですか?
337デフォルトの名無しさん:03/08/21 10:53
MigGWのインストーラ付きが出たぞ。3日前に出てたらしい。

http://www63.tok2.com/home/bitwalk/download.html#mingw

今回はgcc3.3.1をベースにしているから楽しみ。
コンパイルが高速化したんだっけ?
339デフォルトの名無しさん:03/08/21 11:29
かなり多くてよくわからん。
下のアドレスのページを開いて読んでくれ。
http://gcc.gnu.org/gcc-3.3/changes.html
なんか extern template が使えるようになってるみたいだ。
やれやれ、boost 1.30をコンパイルすると山のようなエラーやワーニング
が出ていたが、1.30.2なら通った。そういうフィックスだったのね1.30.2は。
gcc用の修正が真っ先か。
しかもboostのコンパイル成功率がCodeWarriorを抜いて97%になってる。
明らかに1.30→1.30.2でgcc 3.3.1用に最適化されたと思われます。
343318:03/08/21 14:05
>>330
別にやつあたりなんかしていませんが・・・
>>340
g++ (GCC) 3.3.1 (mingw special 20030804-1)
c:/a.h:2: warning: keyword `export' not implemented, and will be ignored
>>344
うん。肝心のexportキーワードがサポートされていない。
でもextern templateが使えるって、これは普通か。
346デフォルトの名無しさん:03/08/25 20:35
MinGWのベストパートナーはDev-C++
http://www.bloodshed.net/

Dev-C++をMinGWとは別のフォルダにインストールして、
devcpp.exe、Help、Icons、Lang、Templates、これだけを
MinGWのフォルダにコピーし、後はDev-C++をアンイン
ストール。devcpp.exeをMiinGW用のIDEとして簡単に使え
る。
スマソPackman.exeもコピーしてくれ。初期起動の時に必要みたい。
後はお好みでExamplesもコピーしておくと、Win32の簡単なサンプルが
入っている。
別にDev-C++に新しいMinGWをコピーしてもいいじゃん
>>349
なんと!そうですね。気づきませんでした。しかしBoostとかBlitz++とか既に
いろんなライブラリが入れてあるのでアーカイブを作って保存しておこうか
な。
devcppのexamplesはどうやってmingwでコンパイルできますか?
>>351
Dev-C++でビルド
>>352
MSYSでコンパイルしたいです。
http://www.parinya.ca/index.html
これ既出?凄くDevC++に似てて怪しいんだけど
>>354
コードブロックを畳んで表示できるところが素敵ぽ。VS.NETのエディタみたいだ
>354
確かにDev-Cppに似てる。出来ること(コード補完やエラー行ジャンプその他)と
出来ないこと(リソースファイルのグラフィカル編集等)が一致してるあたり怪しいな
もしDev-Cppをパクってソースを公開してないとなるとGPL違反の恐れが出てくるんだけど…
DevC++ ってタブ文字とか改行を表示できないの?
あと Korean があるのに Japanese がないのは何故?
どこに行って何をすれば日本語化に協力できるの?
bloodshedのIRC行っていろいろ聞いてみたんだが、あまりに糞なんで途中まで訳した日本語ファイル破棄したヘタレな俺
糞>bloodshedの連中が、ね。

それ以来MinGW+MSYS使ってる
>>358
SourceForge.net: Project Info - Dev-C++ http://sourceforge.net/projects/dev-cpp/
>>360
漏れもMSYS。
統合環境よりシェル+高性能エディタのほうが使いやすい。
おれはEclipse
>>363
ちなみにエディタは何を使ってる?
俺適当にTeraPadで書いてるんだけど、これあんまりプログラミング向きじゃない気がする。
秀丸も同様
366363ではないが:03/09/03 13:41
Vim…(ボソッ
367363:03/09/03 17:00
>>365
漏れはxyzzyです
emacs…mingwをUNIX上でクロスにして作ってる...
TepaEditorがいいよん
gccでコンパイルしてバイナリエディタで見たら、EXEの中に
メモリの内容が一部混入していたんですが、皆さんはどうでしょうか?

同じソースを用いて、
コンパイル => exe1
アプリなど起動
コンパイル => exe2
を行いました。
exe1とexe2を比較すると相違部分が何ヶ所か確認できました。
そしてその部分に、先ほど書き出したレジストリファイルの一部が入っていたり、
直前に編集していたソースの内容が一部含まれていました。

環境はWin98 SP1
gcc 3.31
msys 1.09

自分の環境特有なものなのかどうか、気になるので、
もしよろしければテストしてもらえませんか?
>>370
UNIX上でcrossにして使ってるんだけど、タイムスタンプの所以外にも毎回変わるね。
.rsrcセクションに毎回違うデータが入ってるようなので、
windresがコンパイル毎に違うデータ吐いてるのかな。ちょっと調べてみよう。
372371:03/09/05 03:02
あ、まちがい。.rsrc の中のもタイムスタンプだった…。
漏れの環境では問題ないもよう。


>>370
どのセクションが変わってるかはわかる?
objdump -h hoge.exe で出てくる File off から、
内容の変わってるセクション特定すれ。
373370:03/09/05 04:57
>>372
こんなので良いのでしょうか?
5,120 byteのファイルです。
コンパイル、アプリ起動、コンパイル、アプリ起動、コンパイルを行い、
得られた3つのファイルを比較すると、以下の3個所が共通の相違個所でした。

D24-DFF(.text)
E70-FFF(.data)
1290-13FE(.idata)

以下は、その1つのobjdumpの結果です。
--------------- ここから ---------------
mc1.exe: file format pei-i386

Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000a00 00401000 00401000 00000400 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA
1 .data 00000200 00402000 00402000 00000e00 2**4
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000070 00403000 00403000 00000000 2**4
ALLOC
3 .idata 00000400 00404000 00404000 00001000 2**2
CONTENTS, ALLOC, LOAD, DATA
--------------- ここまで ---------------
374370:03/09/05 04:58
ちなみにOpenJaneView起動直後にコンパイルしたもののE70-FFFの部分は
下記の様に、読み込まれたiniファイルの一部でした。
--------------- ここから ---------------
crollFrameRate=60
EnableAutoScroll=1

[MOUSE]
WheelTabChange=1

(省略)

[OJVIEW]
AllowTreeDup=1
LenofOutLineR
--------------- ここまで ---------------
長文ですみません。
各セクションのケツの所だから、
mallocなりなんなりした領域の初期化をはしょってるせいみたいな感じだね。
ld あたりの問題かなぁ。
これって結構重要な問題じゃない?
>>376
結構。でもWin98系だけじゃないかな。
別プロセスが解放したメモリまたはディスク領域をそのまま
他のプロセスが参照できるのか・・
Windowsのセキュリティホールっぽいなぁ。

unixのldでは再現しないのでは?
>>378
unixでは再現しなかった。(>>372)
NT/2000/XPではどう?
>>379
Windows XP SP1(kernel的にはSP2?) + g++ 3.2.2 + ld 2.13.90 で
.text .data .idata .rsrc(windres) の終端部分を調べてみたよ。
綺麗にゼロクリアされてました。

Win98の頃はファイルポインタを後ろにシークしてから書き込むと
放置された前の部分は内容がクリアされず
解放されたディスク領域の内容がそのまま残ってたから・・
Win98がアヤスィと思うけど。
うちも綺麗なもんでした(w2ksp4)
>>370
というわけでWin98のせいです。
win2000/XPに乗り変えましょう。
383370:03/09/05 19:21
>>375-382
Win98が原因でしたか。
自分は、公開するプログラムを作るわけでもありませんので、
Win98のままで行こうと思います。
皆さんご親切に有難うございました。
384デフォルトの名無しさん:03/09/06 17:48
MINGWをインストールしたんですけど、どうやってパッチを当てたらよいのでしょうか
OSはXPです。
何が聞きたいのか分からん。
素直にバイナリ拾っとけ。
その質問に MinGW や OS は関係あるのか?
patch の使い方をググれ。
MingwってことはWindowsだろうし、
patchの使い方知ったとしても、はたしてbuildまで辿りつけるのかねえ
389デフォルトの名無しさん:03/09/10 22:39
MinGW-3.0.0-1
MinGW-3.0.0-1.exe って何がインストールされるパッケージなんでしょうか?

これの代わりに、MinGW のサイトで配布している
gcc-core, binutils, mingw-runtime などの tar.gz ファイルを集めても
良いのでしょうか? exe 形式とインストーラだとなんとなく不安なのです。
>>390
ほらよ。まずこれから使ってみ。buildは後回しでもいいじゃん。
http://www63.tok2.com/home/bitwalk/download.html#mingw
> MinGW-3.0.0-1.exe って何がインストールされるパッケージなんでしょうか?
個別に配布しているバイナリの主要なものをインストーラでまとめてたものです。
確か、
・GCC-3.2.3-20030504-1.tar.gz
・binutils-2.13.90-20030111-1
・mingw-runtime-3.0
・w32api-2.3
・gdb-5.2.1-1
・mingw32-make-3.80.0-3
・mingw-utils-0.2.tar.gz
を1つにしたもの。違ってたらスマソ。

391 が書いたインストーラも考え方は基本的に同じ。
ただ、こっちの最新版は gcc-3.3.1 がインストールされる。
393390:03/09/13 12:00
>>391, >>392 ありがとうございます。
だいたい予想していた通りでしたが、パッケージされているのが gcc-3.2.3 など
個別配布されているものよりバージョンが低いのですね。
インストーラを使わずに個別ファイルを集めます。
394デフォルトの名無しさん:03/09/14 00:46
>>393
インストーラでインストールした後に古いのだけ個別にアップデートすれば?
w32api-2.4 の変更点、多いね。

つか、391 の MinGW basekit が update されて、
gcc-3.3.1 と w32api-2.4 が収録されたから
個別に集める必要が無くなってないか?

>>394
微妙にスレ違い。
マシンがショボイから最近使ってないが、そこそこ使える。
もっとも、それで何をやるのかが肝心なのだが・・・
397デフォルトの名無しさん:03/09/14 23:13
MinGW で NTサービスを書くことはできますか?
MinGW で タスクトレイにアイコンを常駐させることはできますか?

アプリケーションのアイコン設定は Windres を使って
できるようになったので、あとは上記のことができたら最高なんですが。。
>>397
両方ともできるよ。
業務でmingwを使ってる人いるんですか?
いますよ。
>>398 ありがとうございます。
以下のページを参考にして MinGW で NTサービスを作ることができました。

http://www.devx.com/cplus/Article/9857/0/page/2

タスクトレイのアイコンについてはもうちょっとがんばってみます。
402396:03/09/16 12:59
早くも MinGW-3.1.0 が出たみたいね。
MinGW-3.0.0 からの変更点は w32api-2.4 と mingw-runtime-3.1 らしい。
DevC++の日本語化で>>361のlng使ってるんですけど、文字化けするのなぜなんでしょうか?
>>362 の[View ALL Project Files]とかにも無いですし。
64bit対応(3.3-1)搭載版の正式リリースはまだかね
candidateにはなってんだが・・・
gcjはどうすれば文字コードUTF-8以外の日本語が含まれるソースをコンパイルしてくれますか?
>404です。
3.3-1版入れたけど64bit非対応コンパイル版だった…
ソースからのビルドには失敗するし、どうしたもんだか
Dev-C++ でエディタの文字間が広くてキモチ悪いんですがなんとかなりませんか?
ハゲドー 色々やったけど俺にはどうしようもありませんでした。
仕方ないのでDevC++捨てました
>>407>>408
フォントがCourierになったままだからだろ。漢字も化けるし。
Tools->Editor Options->DisplayでフォントをMSゴシック、サイズを
10〜14程度に汁。
ついでにGutter->Line Numbersにもチェックを入れておくと、エディタに
行番号が表示され、コンパイルエラーが出た時楽。
411407:03/09/28 01:19
エディタの文字間隔直ったよー。

>>409
フォント設定を MS UI Gothic にしてました。
日本語はちゃんと表示されていたんだけど、文字間隔が広くて変だった。
ためしに、MS UI Gothic の下にある「透明な項目」を選択したら、
文字間隔が広いのが直ったよ。MS UI Gothic の上にある「透明な項目」では
だめだった。。
412デフォルトの名無しさん:03/10/06 12:45
mingwに入っている
gcc.exeとmingw32-gcc.exe
c++.exeとg++.exe
mingw32-c++.exeとmingw32-g++.exe
の違いは何なんでしょうか?
コマンドラインオプションは全部共通しているようですが
これらのexeプログラムはどういうときに使いわけるんですか?
どれを使ってもいいんですか?全部同じもの?
やっぱミングーって呼ぶの?コレ
ミンジーダボ
>> 413
MinGW プロジェクト管理者は「みんぢぃだぶりゅう」と言っているらしい。
前半はローマ字読みで後半はそのまま。Min-GW らしい。
418デフォルトの名無しさん:03/10/09 08:30
すみません
MinGWのlibXはありますか?
Cygwin用は見つかったのですが
MinGWは見つかりませんでした
>>418
マルチポストウゼェよヴァカ
>419
UNIX板のcygwinスレで聞いたのは2週間前ですよ
それでもマルチポスト扱いしますか、そうですか
自己厨
>>420
419でも421でもないが、どこに「移動します」というレスがあるのかアンカーで示してもらおうか。
>>422
何勝手にルール決めてるんだ?
向こうの質問がまだ有効ならマルチポストとなるわけだが
>>423
決めたんじゃなくて決まってんだよ。バーカ
>425
どこに書いてあるんだよ?。これだけしか書いてないぞ?
勝手に俺ルールを作るなよばか

「この板はプログラムを作る人のための板です。

あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。」
>>426
いちいちそんなことまで書かなきゃ分からないほどあなたがアホだとは思っていませんでした。
428デフォルトの名無しさん:03/10/10 22:06
みんぐぅ♪
>>420
その後くだ質にも書いてんじゃねーかよ
しかもそっちはレスあったのに完全無視してるし
ダメな奴は何をやってもダメ
431デフォルトの名無しさん:03/10/15 04:14
432デフォルトの名無しさん:03/10/15 18:58
質問です。
MinGWのprintfはlong doubleに対応していないのでしょうか?

printf("%Lg",4.0L * atanl(1.0L));
を実行すると-8.87961e+043という変な表示に
なってしまうのですが。
(本来なら3.1415・・・となってほしいのですが)
>>432
MSVCRT.DLLがlong doubleに対応してないからだめぴょん。
表示する時にdoubleにキャストして普通に%lfで表示するしか
ない。それかcygwinにGOかな。(俺はcygwin使った事ないから
知らんけど。)
>>433
ありがとうございます。

そうですか、DLL側の問題ですか。
キャストする方向で考えて見ます。
(Windowsに精度を求めることが
 間違っているのかもw)
WindowsがどうこうじゃなくてMingWが使うMSVCRT.DLL(VC++のC/C++ランタイム)
の問題なわけだが。
VC においては double == long double だからどうしようもない
long double を表示したいなら *BSD あたりから printf() のソース抜き出して移植すれば?
VS.Net2003Jになってもまだdouble == long doubleだ。
x86は10バイト実数があるのだから利用して( ゚д゚)ホスィ・・・・
>以前の 16 ビット バージョンの Microsoft C/C++ および Microsoft Visual C++ では、
>long double という 80 ビット精度を持つデータ型をサポートしていました。しかし Win32
>プログラミングでは long double データ型は 64 ビット精度の double 型にマップされます。
退化してるのかよ
多倍長整数のライブラリでもつか(ry
MSYSのrxvtで、Deleteキーの動作を「カーソル位置の文字を削除」にしたいのですが、
可能でしょうか?
色々試してみたんですが、どれもうまくいきません。
保全
>>442
sttyでできないか?
MinGW+SDLと&Dev-C++4.9.8.4+SDLの環境をwebを参考しながら構築したのですが、
testプログラムをmakeしてのコンパイルは出来るのですが、
自分でコンパイルすると、

\Temp/ccaIbaaa.o(.text+0x59):testsprite.c: undefined reference to `SDL_RWFromFile'
\Temp/ccaIbaaa.o(.text+0x62):testsprite.c: undefined reference to `SDL_LoadBMP_RW'
\Temp/ccaIbaaa.o(.text+0x78):testsprite.c: undefined reference to `SDL_GetError'
\Temp/ccaIbaaa.o(.text+0xce):testsprite.c: undefined reference to `SDL_SetColorKey'
以下略

のエラーが出てコンパイル出来ません。
Devによると

[Linker error] undefined reference to `SDL_RWFromFile'
以下略

と出ているのですが、どなたか対処をお教え頂けないでしょうかm__m
解決しますた。

gcc -o test.exe test.c -lmingw32 -lSDLmain -lSDL

の順番でオプションを付けると直る、と書いてあるページを発見。
Dev-C++も同様に追加してあげると通るようになりますた。
お騒がせしました。
ほぜむ
mingwのcommctrl.hだとクールバー(動かせるツールバーのアレ)作成できないですね。
bcc付属ののcommctrl.hを代わりにインクルードすれば上手く作成できるんですが、なんとかなりませんか?
自己解決しました。スマソ
#define _WIN32_IE0x0600
マクロでIEのバージョン教えてあげなきゃいなかったのか。
nasmでコンパイルしたobjectファイルを含めてリンクしようとすると
bad reloc address 〜
って出てリンク失敗するんですが解決法求む…
これに一週間振り回されてる…
>>451
Windows98で日本語表示できますか?
453デフォルトの名無しさん:03/11/25 13:36
>>450
漏れは以下のようなやり方でやってます。いまんとこ問題ないよ。
Cの命名規則程度しかつかってないけど。

$ nasm -f win32 hoge.asm -o hoge.o

hoge.asm --- の中身

bits 32
section .text code align=4 use32
%include "c32.mac"

; void prefetch( const void *adr, unsigned siz)
proc_prefetch
%$adrarg
%$sizarg
mov eax, [ebp + %$adr]
タブが見事に潰れてるなぁ・・
proc_prefetch → proc _prefetch
%$adrarg → %$adr arg
%$sizarg → %$siz arg
>>452
日本語表示どころか日本語入力すらできないエディタだったような気が…。
Dev-C++なら日本語入力はできるけど、日本語表示は無理。
456デフォルトの名無しさん:03/11/26 22:52
fstream file;
stringstream str;

file.open( "hoge.hoge" );
str << file.rdbuf();
~~~~~~~~~~~~~~~~~~
↑こんな使い方って間違ってますか?
rdbuf()から読み込んだ瞬間にファイルの内容が破壊されます。
具体的には、

123456

という内容のファイルを開いたとすると、rdbuf()から読み込んだ瞬間、

12123456

という内容になってしまいます。
gccのfstreamってバグってる気がする(;´Д`)
>>456
std::fstream file;
std::stringstream str;

file.open("hoge.hoge");
file.seekp(0, std::ios::beg);
file.seekg(0, std::ios::beg);
str << file.rdbuf();
file.seekp(0, std::ios::beg);
file.seekg(0, std::ios::beg);
std::cout << str.str() << file.rdbuf();

こうやると 1123456 になる。どうも in | out で開いた場合 gccのrdbufって
ポインタがずれるような気がする。

ビルドしたSTLport4.6でやってみたらちゃんと 123456 と表示された。
>>457
情報サンクス。
ちょっと試してみたら、ファイルサイズによってファイルの最初に勝手に追加される文字数が変わるっぽい。
前にseekgでも結構痛い目にあったし、gccのSTLはちょっと信用できない。
STLportはバグ少な目ですか?
>>458
入出力をビルドし、DLLに追いやってしまう事でEXEサイズも小さくなるし、
厳しいベータテスター達によって鍛え上げられていることもあってSTLport
はバグがかなり少なめだと思う。

それにしてもファイルサイズで勝手に追加される文字数が違うとは明らか
にバグっぽい。何か修正しかけてそのまま忘れたとかいうケースかも。
460デフォルトの名無しさん:03/11/27 03:07
VS 2003 と Cygwin 使ってるんでつが、mingw インストールしないとできないこと
ってありまふか?
でもVS環境ってどうも馴染めない。あっちこっちクリックしてばかりで疲れた・・・
やっぱWinって自分でコード書く環境じゃなくて人様の書いたソフト使わせていただく環境だわ・・・
gcc+tcl/tkでごまかしちゃおかな・・・
別にコマンドラインからVC++7.1使ってればいいと思うが。
コードかいてる最中はクリックしないだろ・・・
>>455
Dev-C++はできるよ > 日本語表示
>>461-462
そうだな、makeはコマンドラインでいいし、
VSのデバッグ環境は使いやすいが、それでもクリックなんか不要。
コンソール用のライブラリってないですか?
curses とか。
>>465
そのcursesってのを使えばいいんじゃないの?
どこまでがネタなのかわからん…
少なくともデバッガはフロントエンドがあったほうが楽だと思うが。
>>465
Win32 API
MinGWとMSYSをインストールして使ってみた。
でも、Linuxでは問題なくビルドできているHello Wolrdのプログラムがビルドできない。
configureの後の Makefile が make の時点でエラーになってしまう。

@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/main.Po@am__quote@
↑の行でエラー。わけわからん。
>>471
(mingw+msys)<posix だし
漏れもhello-2.1.1 makeしてみたけど
pwd.hがなくてhello.cでコンパイルエラー。
linux前提の奴はcygwinじゃないと
きついんじゃなかろうか。
だってMinGWはPOSIXのものを動かすのが目的じゃないじゃん。
pwd.hなんてPOSIX環境特有のものであって、Cとは関係ないやん。
>>473 だからそう書いてあるやん...w

>linux前提の奴はcygwinじゃないと
>きついんじゃなかろうか。
>>474
きついというより、そもそもターゲットとしていないという感じでは。
逆にWindows用のプログラムをLinuxでコンパイルしようとしたやつが

Win32API使ってる奴をLinuxでコンパイルするには○○じゃないと
きついんじゃなかろうか。
(○○は仮想のWin32互換・エミュレーションライブラリ)

とか言ったら、そんなの当り前、で一蹴されるだろう。

なぜなら、そもそも>>471>>472では問題の性質が違うから。
>>471はユーザランドの周辺ツールの問題。autoconf、automakeがちゃんと動く
なら解決されうる問題。MSYSを充実させるとか、cygwinやUNIXでクロスコンパイ
ルすればMinGWでも解消できる問題。
>>472はAPIの問題。クロスコンパイルしようが問題は解消しない。
476デフォルトの名無しさん:03/12/01 20:59
Dev C++ 4.9.8.5 使っている人いる? なんかエラーで落ちることが多くなったんだけど…。
バイナリサイズが 4.9.8.3 のときは 2.8MB だったのに、4.9.8.5 では
たったの 800KB になってるし、なにかリンクするライブラリが変わったのかな?
バイナリエディタで見たらわかると思うんだけどUPXで圧縮かけられてる
ま た U P X か 。

なぜに圧縮するのか?
大きいことが恥ずかしいのか?リソース丸見えなのが嫌なのか?
>>478
多分DelphiかBCBで開発してるっぽいインターフェースだから、いろんな
ユニットを取り込む→ソースがばかでかくなるのをなんとか隠したい
のでは。ランタイムDLLを別途配布汁。
俺はもうデブC++やめて某フリーエディタとコマンドラインに変えた。
超快適っす。
>>480
某フリーエディタってどれだ?
Eclipse CDT で MinGW 使ってる人いる?
フリーで最強のエディタと言やあ
xyzzyしかありえん。
xyzzy最強!! 秀丸氏ね!!
なんでそんなに秀丸が嫌いなんだい
>>484
シェアだからさ
俺が厨だからさ
( ゚A゚)

   .   \                       . /
        .\    /// /Vヽ  ソッカソッカ    /
  .        \   ll l .lノノノ)) 〉         /
  /// /Vヽ     \ ヽl l´∀`ノ||   .    /Vヽ
  ll l .lノノノ)) 〉     \./ヽ!トv^ リ.      /lノノノ)) 〉
  ヽl l´∀`ノ|| .ソッカソッカ\ lY) 〉!    ./. l´∀`ノ||
  /ヽ!トv^ リ        \∧∧∧∧/ /ヽ!トv^ リ
  ヽ lY) 〉!     .   < の そ > ヽ lY) 〉!   ソッカソッカ
   ヽlY)i l ||        <  . っ >  ヽlY)i l ||
                < 予 か >
───────────<    そ >───────────
                < 感. っ >
ソッカソッカ            <  !!! か > ソッカソッカ  /// /Vヽ
       /// /Vヽ    /∨∨∨∨\       . ll l .lノノノ)) 〉
      ll l .lノノノ)) 〉  /ll l .lノノノ)) 〉  \      ヽl l´∀`ノ||
      .ヽl l´∀`ノ||/  ヽl l´∀`ノ||    \     /ヽ!トv^ リ
 .    . /ヽ!トv^ ./   ¢!トY_⊂) ソッカソッカ \    ヽ lY) 〉!
       ヽ. lY/  /.旦/三/  /|      \  . ヽlY)i l ||
        ヽ/   | ̄ ̄ ̄ ̄ ̄ ̄| .|       \
       / .  . |甘くないジャム|/         \
>>484
名前もUIもダサいから
アイコンはどっちもダサい
(xyzzy, 秀丸)
秀丸のマクロはダサ杉。
491デフォルトの名無しさん:03/12/08 16:21
XEmacs on Win32をダウソしますたがメニューが
英語で面白くありません。日本語版 on Win32は
どこかにありませんか?無ければMinGW上で
日本語版をビルドできないものでせうか?
XEmacs on Cygwinは炒りません。
MinGWにはpkg-config.exe入ってないのでしょか?どうしたらいいんだ。
493492:03/12/09 03:25
pkg-configは使わないことにしました。('A`) マンドクサ
494492:03/12/09 05:01
アッタ━━━━━━(゚∀゚)━━━━━━!!!!
http://www.gimp.org/~tml/gimp/win32/pkgconfig-0.15.zip
1年で500レスしか付かないスレか。
MinGW使いは少ないのかな。
501!
498
いやあ、MinGWじゃなくて、cygwinの-mno-cygwinで使っていたんだが
DirectX9関連の補完が完璧じゃないので(D3DXが使えない)やめちゃ
った。誰かコンパイルできる方法知ってる?
500500:03/12/15 22:02
500!
MingwでChaSen(http://chasen.aist-nara.ac.jp/index.html.ja)をコンパイルしようと
しているのですが、make時に以下のエラーが出てうまくいきません。
どなたか解決方法を教えてくださいませ。

make時のエラー
(略)
g++ -o chasen.exe chasen.o ../lib/.libs/libchasen.a
../lib/.libs/libchasen.a(literal.o)(.text+0x35d): In function `jlit_init':
d:/MyDoc/C++/chasen-2.3.3/lib/literal.c:200: undefined reference to `libiconv_open'
../lib/.libs/libchasen.a(literal.o)(.text+0x3cc):d:/MyDoc/C++/chasen-2.3.3/lib/literal.c:218: undefined reference to `libiconv'
../lib/.libs/libchasen.a(literal.o)(.text+0x457):d:/MyDoc/C++/chasen-2.3.3/lib/literal.c:229: undefined reference to `libiconv_close'

configureは
./configure --with-darts=/usr/local/include/
で、やっています。

configureのメッセージ中で関係有りそうなところ
checking for darts.h... yes
checking for iconv in -liconv... no
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking iconv args... EUC-JP SHIFT_JIS ISO-8859-1

iconvは
ここ(http://www63.tok2.com/home/bitwalk/download.html)のMinGW tools
に収録されているものを使っています。
そのlibiconvは一体どこに入っているんだ?--with-iconv=DIR で指定したらどうだ?
愛(・∀・)昆布
>>502
/mingw/lib/にlibiconv.aがあるので、--with-iconv=/mingw/lib/を追加して
configureしましたが、何も変わりませんでした。
また、configure --helpには--with-libiconvと書いてあるので、
--with-libiconv=/mingw/lib/も試しましたが、同じでした。
505501:03/12/16 00:25
追記:
それと、MSYSの環境でコンパイルを行っています。
>>504
Makefile.inとconfigureの中身見ても分からないんなら

g++ -o chasen.exe chasen.o ../lib/.libs/libchasen.a -liconv

でやれ。Makefile直書きしろ。
まぁiconvといっても色んなバージョンがあるのだが。
508501:03/12/16 01:48
以下の手順でコンパイルを通りました。
$ ./configure --with-darts=/usr/local/include/
configure後のlibディレクトリのMakefileでLDFLAGS = とあるところに-liconvを追加する
$ make
皆さんありがとうございました。
>>507
例えば?
インラインアセンブラしようとしてるんだけど、どうやればいいか分からない。
DigitalMarsとかだったら _asm{ mov eax,0} みたいな感じですが
asm(""); ってしないといけないじゃないですか?
>>510
まずは普通のCかC++のプログラムを -S オプションを付けて
コンパイルし、吐き出される面妖なアセンブリ出力を見て研究
しよう。普通の86系と書き方の順が逆でしょう。

理解できなければ
http://www-6.ibm.com/jp/developerworks/linux/010615/j_l-ia.html
当たりを見て研究すべし。
http://www.issei.org/diary/_20030224/d200212c.html
当たりにも怪しげな説明がある。
512デフォルトの名無しさん:03/12/29 08:32
ageとく
>>511
サンクス 助かった。 ほぉ、mov b,w,lってサイズのことだったんだ。
>>513
gccのアセンブラはサイズのプレフィックスがニーモニックの側に付く。
だからptrに相当するようなものはない。オレも最初は戸惑った。
gcc-x86のインラインアセンブラはこの辺も参考になる。
このデータの転送方向が左から右というのはAT&T形式と
呼ばれ、PDP11の頃から使われており、gccでは一貫して
用いられている。(gas)

英語の自然な文法から言えば、第四文型S+V+O'+Oは
Intel形式によりよく一致しているが、AT&Tの方が古いん
だし仕方ない。

またmovlという形式はMotorola形式、movlという形式は
MIT形式と呼ばれる。MIT形式はUnixでは普通よく使わ
れてきた。

http://www.mars.sannet.ne.jp/sci10/on_gcc_asm.html
http://www.rkmath.rikkyo.ac.jp/~kida/casm.html
スマソ
×movlという形式はMotorola形式、movlという形式はMIT形式と呼ばれる。
○mov.lという形式はMotorola形式、movlという形式はMIT形式と呼ばれる。
offsetofが使えないとは・・・
>>517
自分でdefineすれば?
>>518
しましたw
Dev-C++日本語化パッチ
http://wide-ben.hp.infoseek.co.jp/
521デフォルトの名無しさん:04/01/16 22:36
MigGWパッケージ復活おめでと
ttp://www63.tok2.com/home/bitwalk/download.html#mingw
ソ連製のようだな>Mig
Σ(゜ロ゜)ハッしまった!typoしてしまった。
さて
このスレに航空ヲタは居るのか
MachのIDLコンパイラもMiGだったよな。
で、まだ日本語は通らんのか
MinGW日本語版 - Bigge Web Site
ttp://www.biggie.jp/jmingw.html
>>527
gccのバージョンくらい書いといてほしいな。
>>528
わざわざ日本語化して公開してくれている人にはとりあえず感謝しる。

でも、日本語とおらなくって困るのは、どっちかっていうとリソース
なんだよな。

ソース内に2バイトコードなんて、コメント以外では滅多に出ないし。
そのままでも回避方法結構あるし。(CPPをラップするCPPPPを使えば
なんとかなるんだな)
>>522
gが小文字
>>529
windress も日本語化されてるようですが?漏れの勘違いか?
これは、MinGWをforkして、日本語化版をGPLでやっていこうというプロジェクト?
あと、このプロジェクトとKijineko Software Inc.の関係が今一歩ワカラン。
>>532
こいつが何をやりたいのかさっぱりわからん
GCC等での話はMinGW関係無いんだから、それぞれの本体でやればいいし、
プロジェクトページに挙げられているMinGWに関する問題は日本語の問題とは一切関係無いし、
MinGW本体でやらねばならない話だし。
i18nの為のpatchを作って各本家にcontributeしていこうとか、そのpatchがmergeされるまで、
暫定的バイナリを配布するという趣旨なら、まぁ分からないでもないが…
それにしたって「MinGWの日本語化」と題するのは妙だし、'mingw-jp'を名乗る辺り、分かってない
のか、分かってやっているのか、どちらにしても何か胡散臭さを感じる。

このプロジェクト管理者ってのは、何者なんだろう?TOPPERSをC++化するとかいうプロジェクト
もやってるし。既存プロジェクトに何か単語を付加して、GPLる(wのが趣味?
MinGWのsnprintfってMSVCRT.DLLの_snprintfをそのまま使ってるんでしょうか。
溢れると-1を返すのでバッファの必要サイズを知るために使えなくて悲しいのですが、
必要なバッファサイズを知るには皆さんどうしてますか?

537デフォルトの名無しさん:04/01/29 23:30
Mingw Developer Studioについて初歩的な質問で恐縮ですが、
これって#がコメントになってますか?
include しようと思ったらできなくて困っています。
初歩的な間違い、勘違いですか。
539537:04/01/30 00:31
確かに初歩的な間違いでした。
>>536
文字配列空きバッファをallocaあたりで確保して_snprintf。正ならOK。
負ならバッファサイズを2倍とか大きくして再tryしてはどうか。
スマートとは程遠いけどねーーーー
541デフォルトの名無しさん:04/02/20 15:32
>>527-529,531-535
今日からMinGW使おうと思って、今、普通のと日本語化したの
どちらを使おうか調べているのですが、

・MinGW日本語版のデータそのものは別の人がやってた日本語対応を別サイトでそのまま継続した形
・なので日本語のコメントやリソース等、一応まともに使えるようになっている
・ただしプロジェクトページを主に書いているプロジェクト管理者がなんか微妙
 (もともと日本語対応してた人とは別人)

まとめてみるとこんな感じで、今から使うなら日本語版MinGW使った方が便利
という理解で良いですか?
>>528
さっぱり分からないのですが、
最新版を解凍してみたところ、gccbugに
DEFAULT_RELEASE="3.3.1 (mingw special 20030804-1)"と書いてありました。
ということはgccのバージョンは3.3.1ですかね。
noire氏が開発小部屋でgccの差分ソース、windresのバイナリ・差分ソースを公開
(gccのバイナリはサイト容量の都合でなし)
noire氏のソースを当ててビルドしたgccのバイナリをたかぎ氏が公開>>527
たかぎ氏がsourceforgeでプロジェクト立ち上げ>>532
noire氏もプロジェクトに参加(予定)
544デフォルトの名無しさん:04/02/21 00:04
2chって他人のやることに嫉妬しかできない無能の集団だもんな
プリプロセッサ方式でいいって人もいるけどさぁ、
それだとgdbで不都合あるからあのパッチ美味しいよ。
546541:04/02/21 00:52
>>543,545
ということは>541のような理解で良いのですね。
レスに感謝。プログラムに本格的に取り組むのはBASIC以来ほぼ初めてですので、
これからじっくりやり方を調べたいと思います。
MinGWでSDL_imageやSDL_ttfを使ってる人っていますか?

SDL_imageとSDL_ttfの導入がうまくいかず、苦労しています。
どちらもコンパイルは成功したのですが、これらを含めた簡単なテストプログラムが動きません。
プログラムを動かすとdllの初期化(?)のところで落ちてしまいます。

gdbで動かした結果
Program received signal SIGSEGV, Segmentation fault.
0x00511006 in lab () from C:\msys\1.0\local\lib\SDL_image.dll
(gdb) up
#1 0x77f5b2bc in ntdll!LdrSetAppCompatDllRedirectionCallback () from ntdll.dll

SDL_ttfについても同様の現象です。
上のほうでリンクの順番という話があったので念のため明記すると
gcc image_test.c -o image_test -lmingw32 -lSDLmain -lSDL -mwindows -lSDL_image
です。 (flags略)

またSDL_imageについては -lSDL_image とせずに libSDL_image.a を直接リンクすると動いたのですが(なぜ?w)、
SDL_ttfについては同じことをやっても動きませんでした。
各バージョンは
SDL 1.2.6
SDL_image 1.2.3
SDL_ttf 2.0.6
です。
何か心当たりがあれば、どなたかアドバイス等お願いします。
>>547
SDL_image も SDL_ttf も触ったことないけど・・・

>> またSDL_imageについては -lSDL_image とせずに libSDL_image.a を直接リンクすると動いたのですが(なぜ?w)、
gcc のフラグに -static がなくて,かつ libSDL_image.dll.a というファイルがライブラリディレクトリにあると
libSDL_image.a の代わりに libSDL_image.dll.a の方とリンクするらしいよ.

だから,もし libSDL_image.dll.a があるなら,直接リンクで libSDL_image.dll.a をリンクすれば同じようにエラーが起きるのではないかと
早速のレスありがとうございます。

そんなことがあるんですね…
-static オプションはつけていなかったので、
調べたところ *.dll.a というファイルはないようです。
他を調べてみます。

-static について今回の件で知りましたw
550デフォルトの名無しさん:04/03/06 18:46
つーかSTLportの再ビルドが面倒くさかったり。
>test.o(.text+0x2c6):test209.c: undefined reference to `InitializeFlatSB@4'
>test.o(.text+0x2ec):test209.c: undefined reference to `FlatSB_SetScrollProp@16'
>test.o(.text+0x2ec):test209.c: undefined reference to `FlatSB_SetScrollProp@16'
>test.o(.text+0x2ec):test209.c: undefined reference to `FlatSB_SetScrollProp@16'

こんなエラーがどさっと出たので、てきとーにグーグルで調べて試行錯誤して

ttp://cvs.kshosen.ac.jp/PEACE/cvsweb.cgi/peace/dll/comctl32/comctl32.def?rev=1.11
これを コピペして libcomctl32.def に保存して cygwin のdlltool で

# dlltool --def libcomctl32.def --dllname comctl32.dll --output-lib libcomctl32.a -k

で libcomctl32.a 作ってしてリンクしてフラットスクロールバーが使えた ヽ(´▽`)ノ
で、気が付いた、飯まだだった。 (⊃д`)
553デフォルトの名無しさん:04/03/08 00:06
自分で作ったDLLに対して
% nm test.dll
とかやってみたらシンボル名がつらつらと出てきます、よってリンクもすんなりいくのですが
既存のwindowsのDLLだったら
no symbols
と言われるので.defファイルも生成できません
mingwで既存dllを使ってプログラムをつくることってできないのですか?
impdef でググれ
w32api2.5でAnimateWindowの宣言が追加されたんだけど、
そのフラグが_WIN32_WINNT>=0x0501でdefineされてやんの。
バグでつか?
自己レス。ヘッダの宣言は間違ってなかった。
WINVER=0x0500を指定しなかったのが原因。
でもなんで、AnimateWindow()の宣言だけは
_WIN32_WINNT=0x0500だけでとおるんだ?
557デフォルトの名無しさん:04/03/10 10:09
MinGWからlibgdaは使えますか?
C++ から使えるDB アクセスライブラリさがしてたら
OTLやDTLよりlibgdaに惹かれつつあり、
Windowsからも使えるのか気になってます。
558デフォルトの名無しさん:04/03/12 11:57
>>553
既存のはストリップ(strip)されてるから
objdump -p 〜.dll
じゃだめなの
最近気付いたこと。というよりハマったこと。
undefined reference toが出たら -l と -L の順番があやしい。
依存関係のうち「他から依存されているもの」を最後に持ってきて
「他に依存しているもの」を最初に持ってくると良いみたい。
具体的には hoge.o fuga.o -lkoukyuu -lm -lc みたいに
必ず *.o が最初で、他から参照されないライブラリが最後。
>>559
FAQ
561デフォルトの名無しさん:04/04/03 12:59
>>559
全く同じことでハマった。どうやってもリンクでエラーが出るんで、
GCCのドキュメントやら読んでみて、やっと "-l" オプションの順番のこと知った
MinGW初心者です。

リソース関係ですが、
IDD_HELP_ABOUT DIALOG 0,0,192, 52
STYLE DS_MODALFRAME<−この行で parse error
CAPTION "About"
以下略...

STYLEは通らないんでしょうか?
DS_MODALFRAME が定義されてないとかでわ

#include <windows.h>
はい、その通りでした。

#include <windows.h> が必要とは、全然気が付きませんでした。

有難うございました。
保守
567デフォルトの名無しさん:04/04/29 00:31
MinGWに明日はあるんでしょうkくぁあwせdrftgyふじこ
gcc3.4.0が出たというのにMinGWはいつもワンクッション置かないと
出てこないよねえ。休み前には出なかった orz
自分でgccをmakeすれば待つ必要ないんじゃないの?
>>569
それは言えてる。
572デフォルトの名無しさん:04/05/03 23:45
Windows上のMinGWで動かすGUIのデバッガは何かないでしょうか?
gdbは使いにくく過ぎて骨が折れます。
>>572
C++BuilderX、と言いたいところだが、ちょっと重過ぎる。
軽くていいのがあれば俺も教えて欲しい
>>572
emacs + gdb
コマンドラインのGDBは、もう本当に殺意が沸くほど使いにくい(インストラクションやレジスタの状態を視覚的に追いながら
デバッグしづらい)のでGUIは助かるなぁ。
>>573-575
ありがとうございます。今>>575さんの紹介してくださったInsight
を落としたのでビルドして試してみます。
Google Search: insight5_win32.zip
http://www.google.com/search?&q=insight5_win32.zip
>>578
サンクス。cygwinを入れてないので(MSYSのみ)途方に暮れていました
がこれで一発で動きました。ありがとうございました。
ビルドに40分ほどかけてる漏れは負け組みですか
gdbのfront endがついてるIDEってなんかなかったっけ?
DevC++についてるけど、あれははっきり言ってただのランチャ
>>581
あ、「フリーの」が抜けてた。
Source Navigator以外にも何かあったような気がする。
MinGWの本家デザイン変わったね。
ホントだ。Wikiも設置されてる。
Wiki はえらい前からあった希ガス
MinGW 版 gcc-3.4.0 出た。

ところで、こんな話題の場合、「GCCについて part3」「cygwin +
mingwn + gcc 相談室」「MinGWを使おう」のどこに書けば…
588デフォルトの名無しさん:04/05/10 16:17
3.4.0 キター!!!

が……

> Please note that precompiled headers do not work on mingw32.

...orz...
調べていないけど、cygwinのgccで-mno-cygwinする分にはprecompiled headers
も使えるんじゃない?
多分ファイル操作周りのコードがUNIX依存という都合だろうと思うんだけど。
>>589
>>324 見てると、自分でパッチ当てないと無理っぽい。
591590:04/05/10 17:42
GCCについて part3 の
http://pc5.2ch.net/test/read.cgi/tech/1072484422/324
だった。
592デフォルトの名無しさん:04/05/10 18:50
誰かMinGW3.4.0でSTLportのビルドに成功した人いる?
ひでえ。元々のgcc3.4.0で既にSTLport4.6.2はビルド不可じゃん。
ふいーようやくSTLportビルド成功。ってこれ、単にSTLportが
gcc3.4.0に対応してないだけでした。STLport側のworkaround
(ほんの少し)でビルド出来ます。

プリコンパイルヘッダが使えないのは残念だが、生成だけは
出来たりする。でも読んでくれないんだよねえ。まあいいけど。
コンパイル速度は3.3.3より上がっているような気がします。
595デフォルトの名無しさん:04/05/12 21:45
binutilの再ビルドすらままならない漏れを助けてみませんか。
つーかマジで助けて…

MinGW-3.1.0-1.exe
MSYS-1.0.10.exe
といれて、
binutils-2.13.90-20030111-1-src.tar.gz
をビルドしようとしたのですが、

ylwrap "" arlex.l lex.yy.c arlex.c --

で -d:command not found と出て停止。

http://www.mingw.org/MinGWiki/index.php/build%20binutils
に従って
bison-1.875.0-2003.02.10-1.exe
を入れて再突撃したら、今度は"fg: no job control" が出て、大量にエラーを吐き出し停止。
…何がなにやら…。
bison1.8使いものになりまふかー?
1.2使ってまふ。
597デフォルトの名無しさん:04/05/12 22:53
gcc 3.4ってSIMDビルトイン命令最適化周りのバグが悪化しているみたい。
3.3.1ではうまくコンパイルできたのに3.4ではSSEは同じように動作しないし
SSE2にいたっては最適化かけるとInternal Errorでコンパイルすらできない。
アセンブラコードを見ると3.3.1より並列化をかんばっているみたいなのに
残念。
ttp://www63.tok2.com/home/bitwalk/src/mingw_tools_039.exe
この中のbisonって、なんかd:/MinGW/なんたらでアクセスするところがあるみたい。
スケルトンがm4マクロだからだろ。そのm4のWin版が怪しい。
スナップショットだからね。1.8は。
バイナリエディタで見たら、bison.exeにd:/MinGW/なんたらが2箇所ほど
埋め込まれてたけど
bisonを1.3に切り替えても同じでつた…。
make中にFlexが無い旨のwarningが出てたので追加しましたが、やはり変わらず。
うぅぅぅぅん…。皆様、素でビルドできてます?
クロスコンパイラが欲しい人でもないと、そもそも再ビルドの必要性が無いかもしれませんが…。
直接binutilとは関係ないところ(psqlのページ)で見つけたんだけど、
MinGW bison を使ってるかぎり、無理ってことになるのかな…?

That MinGW bison have more that one problem (cant create m4 process, and
sometimes is confused when called from Makefile). Flex is also not working
properly (CreateProcess fails) :-(
603595:04/05/13 11:58
bison1.25、flex2.5.4をそれぞれGNUのFTPから落としてきて
ビルド&インスコしたら、ビルド自体は通るようになりました。

make install にて
bfd.infoのインスコに失敗するんだけど、これはなんだろ…。

ともあれ、指摘くださった神の方々、ありがとうございまつ。
mingwて、色んな意味で駄目だね。
でもお手軽Win32のgccとしてはこれしかない罠。
>make install にて
>bfd.infoのインスコに失敗するんだけど、これはなんだろ…。

あ、俺もだ。
make install -i で強行突破しちゃったけど、いいのかなあ…。
MinGW でのクロスコンパイラ対応は冷遇されているのか、
普通にあちこち間違ってて、修正に閉口する。

つか、なんでMinGWのダウンロードから落としたgccでビルドにしくじるのかな。
一緒に置いてあるdiffを見ると修正されてるし、実際にパッチは当たってるんだけど、
実際にconfigureかけると、展開されたMakefileに全然反映されてねぇ。
一体どういうこった!
--host=mingw32 だろうが --host=i386-pc-mingw だろうが、
gcc/i386 以下のヘッダを(部分的に)シカトしやがる!

おかげで未だにfixincがビルドできないでいるよ…。
cygwinで-mno-cygdllしてから持ち込んだ方が早いですか?
windows上でビルドなんて遅くてやってられないから
Cygwinが遅いのは構造的に仕方ないので納得行くにしても、実体の無い
MinGWのビルドが遅いのは不思議だ。
体感的には同スペックのLinux上でのビルドと大して変わらないとはいえ…。

相手がLinuxなら、同じx86のバイナリなのに、差が開くのは不思議だなあ。
ディスクIOだって大体トントンか、場合によっては多少Windowsの方が
速かったりすることもあるんじゃなかったっけ?
アベレージではLinux等の方が速いにしても。
>>607-608
NT系は元々プロセス起動のオーバーヘッドがでかいから。
OSの構造もモノリシックとMKもどきで全然違うんだし、そこが違えば
プロセス起動時間にも差が出て当然だと思うが。
>>606
前にcygwinで-mno-cygwinでクロスコンパイルをした時は
パッチを当てないとできなかった記憶が

gcc/Makefileを
STMP_FIXINC =
に変更してみては
>>610
ありがと。
あちこち見て回って、大体解決してきました。
指摘の通り、gcc/Makefile の STMP_FIXINC は空欄にするのがいいみたい。
いまはcollect2がfork、pipe、killを使ってやがると怒られるのに引っかかってる。
実はここも gcc/Makefile から外せばいいかと、訳も分からず COLLECT2= と
空欄にしてしまってたんだけど、当然ながらビルドされた ld の挙動が糞味噌になりましたウホッ。

ここだけ潰せば、多分出来上がりだと思う。
実際にはパッチはほとんど(まったく?)使わなかったですよ。
gccのビルド用に本来ターゲットのライブラリとヘッダが必要な分、
本当だったら小細工が必要なんだろうけど、これは出来合いのをガメて
こられたので…。
やー、面倒だったあ。
あたりまえだけど、ちゃんと理解しないで生兵法こいても何にもならないすね。
良い勉強になりますた。
>>611
パッチってgcc/Makefileにconfigure時に細工をするやつのこと
(STMP_FIXINC等を無効にしたりする)

前やった時はcollect2はなくても動いてたよ。

インストールするdirをc:/hogeとかにmountすれば、
上手くいくと思うけど?(--prefix=/hoge)

作業するdirもmountしたほうがいいかも
>>612
MinGWのサイトのdiffとか見てるとパッチされてるし、
配布されてるgccもパッチ適用済みっぽいんだけど、configureかけると
違うMakefileが上がってくるですよ…。なんでだろ。
先のSTMP_FIXINCの無効化とかも、実はそこから汲み上げた情報です。
hostがmingw32でtargetがi386-pc-linux-gnuというアホなことしてるので
仕方ないかと諦めてました。

collect2が必要ないとすると、ldの挙動が変なのはなんでなんだろ。
--prefix=/hogeしてインスコしたのですが、ldを-vして見た限りでも
ちゃんと置いてあるとこ見に行ってるにも関わらず、-lc が片っ端から
cannot find になるです。直接食わせれば大丈夫だし。
うーん…。
>>613
i386-pc-linux-gnuですか?
targetがh8300等と思ってました。

>配布されてるgccもパッチ適用済みっぽいんだけど、configureかけると
>違うMakefileが上がってくるですよ…。なんでだろ。
t-mingw32の内容が反映されてないのだったら正しい動作だと思う。
t-mingw32の内容を反映したいのだったら、
x-mingw32に変更を加えないと駄目じゃないのかな?

-lcはgccの
-print-search-dirs
オプションでライブリ検索パスを確認してみては

案外、コマンドプロンプトで動かすと出来たりして
>>614
>-print-search-dirs
>オプションでライブリ検索パスを確認してみては

ありがとうー。
さんざっぱら確認したつもりが、きっちり間違えてました…ぁぅぁ…

あの後、更に追加で

・展開したライブラリを一度tar の-hで固めてから再展開してシンボリックリンクを削除
・libc.soの中のlibc.so.6とlib_nonshared.aのリンク先をc:/msys〜の形に書き換え

として、手元のWindowsでa.outをビルドできる様になりました。
デフォルトのライブラリ検索パスとかがおかしいままで、-Lに/usr/libを追加したり
ld-linux2.so(だったか?)を直接リンクしてやらなかいとけないけど、gcc、g++共に動作してます。
ちょっぴり感動(w
gccはもっとテーブル引きとか駆使して速くすべきだと思う。
絶対無駄なことしてるよあれ。
具体的にはgccのどこざんしょ?
テ ー ブ ル 引 き
ソースコードのパーズツリーのパターンからネイティヴコードへのテー
ブルを持って、ということを言いたいんですかね。
単に「テーブル」なんていっても漠然としすぎ
所詮その程度の知識しかないのに分かったようなこと言ってるのがバレバレ
621デフォルトの名無しさん:04/06/01 23:34
↑ボキャ無いのがバレバレ
↑ボキャバレリーナ
舌噛んだ
MinGWのgdbって、シリアル接続まともに認識しなくないですか?
そんなことない??

シリアルのクロスケーブルでCOM1とCOM2をつないでループバック化してみたんだけど、
Cygwinのgdbはちゃんとtarget remote com1もtarget remote com2も動作してるのに、
MinGWのは駄目な気がする。
ソース落としてきて再ビルドしても、やっぱりだめ。
connection established云々言って、そもそもシリアルのポート自体を認識できてないくさい。
信号も飛んでない。
最悪Cygwinで-mno-cygdllでビルドしなおしたものを移植すればいいのかもしれないけど、
なんか納得いかねぇ話だ。。。。

ちなみにソースはMinGWのダウンロードサイトから落としたVersion5.2.1っす。
シリアル周りがunixに依存してるから、動かないようにしてるんじゃないかな。
自分でwinで動くように変更しないと駄目かも。
シリアル使いたいなら、cygwinのgdbを使うのが正解だと思う。
仕方ないよな…仕方ないよね…
で、諦めてcygwinのgdbを使う事にしたんだけど…
x86Linuxでビルドしたgdbserverと通信できん。
ハッシュが違うの変なバイナリコードが飛んでるのとエラーが出てしまう。
素直にTCP-IPで通信しろってことですかそうですか。
誰か直してくれねぇかなぁ…。
gdbのことはよく知らんけど、cygwinの素のgdbだと駄目なんじゃないの?
628626:04/06/05 14:24
あ、ごめん。報告し忘れ。
その後普通に動く事が判明しますた。
単にボートレート合わせて、target remote /dev/ttyS0 とかすりゃいいだけだった。
gdbの通信に環境依存があるわきゃねぇんだよ、いや、実際にはあるのかもしれないけど、
基本的なコマンドまで受け付けないはずないもんね。
しっかりしろ漏れって感じですた…。

単に漏れの勉強不足だと思うんだけど、今の所-mno-cygwinつけても色々DLLを
必要としてしまうぽいんで、その辺が課題としては残ってるけど、とりあえず作業は
できるようになりますた。
MSYS-1.0.10、なんかネットワークパス上のファイルをコピーしたりすると
ファイルが壊れる事があるんですが・・・
>ネットワークパス上のファイルをコピーしたりすると
って具体的にどんな事したのよ?
cp //server/tmp/clear.exe /d/tmp

ls -l //server/tmp/clear.exe /d/tmp/clear.exe

3072 Apr 21 2000 //server/tmp/clear.exe*
3071 Jun 6 02:56 /d/tmp/clear.exe*

こんな感じです。

バイナリエディタでみると1バイトとか幾つか抜けてたりして
正常に実行できません。

cygwin 1.5.9-1 だと問題ないんですが…
ttp://article.gmane.org/gmane.comp.gnu.mingw.msys/1212/match=network

MSYS-1.0.8では壊れる事があったようだ。
MSYS-1.0.11でやってみたが、壊れる事はなかった。
>>631
うごー!それ出来るの知らんかったー!
cygwin では //192.168.1.1/share とか ip でアクセスしてたんで
MSYS では出来ないのかと思ったら //ホスト名//share なら行くのかー!
個人的には cygwin サヨナラの予感…。独り言スマン。
>>633
それ Windows の機能だし…
つか、MSYS、時々シェルが固まらない?
cygwinに比べれば圧倒的に速いし、DLLの縛りもないし、環境としては必要十分で
重宝してるけど、微妙に脇が甘いというか、練れてないところがあるというか…。
結局、cygwin併用することになるんだよね。
シンボリックリンクも扱えないので、クロスコンパイル環境でっちあげても、
ライブラリの持ち込みに苦労したりするし。
あともう一声だと思うんだけどさ。
直ってない予感

$ uname -rs
MINGW32_NT-5.1 1.0.11(0.46/3/2)
$ cp /bin/diff.exe /e/
$ ls -l /bin/diff.exe /e/diff.exe
-rwxr-xr-x 1 hoge Administ 68608 Apr 30 22:15 /bin/diff.exe
-rwxr-xr-x 1 hoge Administ 68608 Jun 8 02:27 /e/diff.exe
# OK
$ cp /e/diff.exe //server/share
$ ls -l //server/share/diff.exe
-rwxr-xr-x 1 hoge Administ 68891 Jun 8 2004 //server/share/diff.exe
# NG
ネットワークドライブに割り当てた場合は大丈夫みたい。
GnuWin32とMinGWとCygwinってそれぞれどうちがうの?
>シンボリックリンクも扱えないので、クロスコンパイル環境でっちあげても、
>ライブラリの持ち込みに苦労したりするし。
gcc,ld等にcygwin形式のシンボリックリンクが扱えるようにパッチをあてるのさ。
dirのシンボリックリンクはやらなかった(やれなかった)けど、
シンボリックリンクされた単品ファイルをアクセスする分には十分機能してたよ。
641名無しさん@Vim%Chalice:04/06/08 09:08
>>644
cmd で使える?explorer では \\hostname\share で行けるけど、
コマンドプロンプトだと cd \\hostname\share とかやっても共有
ディレクトリに移動出来ないっしょ。んだから cygwin 使ってたんだけど…
# んだからってわけでもないが
>>639
それぞれプロジェクトの目的が違うんよ。
GnuWin32:ネイティブに使えるUNIXコマンド群
MinGW :最低限のgcc開発環境
Cygwin :UNIXシステムコールライクな環境
たしかこんな感じ。
>>641
MSYSのshならCygwinのと同じく cd //server/share で移動できるみたい。

>>642
じゃあMSYSのをGnuWin32のに入れ替えても問題ないのかな。

とりあえずlsとかcpとかをGnuWin32のに入れ替えたけど、
MSYSのshから起動するとmount情報とかちゃんと反映してくれるみたい。

ls /c とか ls /mingw とかするとちゃんと見えるしcpもUNCパス越しでも
問題なし。
>641
cmd/commandでは、カレントディレクトリにはできないよ。
でも、ファイルコピーとかなら可能。
>>640
>gcc,ld等にcygwin形式のシンボリックリンクが扱えるようにパッチをあてるのさ。
>dirのシンボリックリンクはやらなかった(やれなかった)けど、
>シンボリックリンクされた単品ファイルをアクセスする分には十分機能してたよ。

うへー…。
ただでさえMinGW用にはパッチ当てまくらないとまともに動作しないgcc以下に、
そこまでしてやるのはちと考えちゃうなあ…。素晴らしいとは思うんだけど。

スレの趣旨から外れちゃうんだけど、MinGW上でクロス構成したgccをeclipse上から
使う実験をはじめてみますた。
CDT+ManagedC++で、ほぼ問題なく動いてるんだけど、共有ライブラリの検索パスに
C:/msys...とか書く訳にもいかんし、ちょと悩み中。
こういうの、どうすりゃいいのかな。
何か良い手ってないもんでしょうか。
646デフォルトの名無しさん:04/06/09 23:13
MinGW3.4.0での質問です。

cp.c
#include <windows.h>

int main(void) {
    PROCESS_INFORMATION ps;
    STARTUPINFO si;
    GetStartupInfo(&si);
    CreateProcess(NULL, TEXT("notepad.exe"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &ps);
}
というコードを
gcc -DUNICODE cp.c -o cp
とコンパイルして実行するとアクセス違反で落ちます。STARTUPINFOA/Wの別が関わっているとは思うのですが、解決法が分かりません。
どなたか解決法をご存知でしたらご教示頂けないでしょうか。
    CreateProcess(NULL, TEXT("notepad.exe"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &ps);
+++    return 0;
}

returnを忘れていました。
gdb
(gdb) b main
Breakpoint 1 at 0x4012f8: file cp.c, line 3.
(gdb) s
The program is not being run.
(gdb) r
Starting program: C:\wd\cp.exe

Breakpoint 1, main () at cp.c:3
3       int main(void) {
(gdb) s
6           GetStartupInfo(&si);
(gdb) s
7           CreateProcess(NULL, TEXT("notepad.exe"), NULL, NULL, FALSE, 0, NULL,
NULL, &si, &ps);
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x77e63de6 in RegisterWaitForInputIdle () from C:\WINNT\system32\KERNEL32.DLL

となります。
int main(void) {
char ps[sizeof(PROCESS_INFORMATION)*2] ;
char si[sizeof(STARTUPINFO)*2] ;
GetStartupInfo((STARTUPINFO*)si);
CreateProcess(NULL, TEXT("notepad.exe"), NULL, NULL, FALSE, 0, NULL, NULL, (STARTUPINFO*)si, (PROCESS_INFORMATION*)ps);
}
でも試せば?
ありがとうございます。しかし結果は
7           CreateProcess(NULL, TEXT("notepad.exe"), NULL, NULL, FALSE, 0, NULL,
NULL, (STARTUPINFO*)si, (PROCESS_INFORMATION*)ps);
(gdb)s

Program received signal SIGSEGV, Segmentation fault.
0x77e63de6 in RegisterWaitForInputIdle () from C:\WINNT\system32\KERNEL32.DLL
と同じ結果になりました。。
#include <windows.h>
int main(void) {
char ps[sizeof(PROCESS_INFORMATION)] ;
char si[sizeof(STARTUPINFO)] ;
wchar_t s[] = TEXT("notepad.exe");
GetStartupInfo((STARTUPINFO*)si);
CreateProcess(NULL, s, NULL, NULL, FALSE, 0, NULL, NULL, (STARTUPINFO*)si, (PROCESS_INFORMATION*)ps);
}

じゃあ、これで動くと思う。
たぶん文字列定数辺りに何か原因が。
とりあえず-Sでアセンブラ出力してみて、
比較して何が違うか報告してくれると嬉しい。
ありがとうございます。>>652のコードでうまくいきました。
-Sの結果はこのようになりました。ソースは>>646>>652です。

begin 644 cp.zip
M4$L#!!0````(`.J]R3#!,1\J4P$``$(#```"````8W"-DEUKPR`4AJ\M]#^$
MT$$+J9@T"V6[&?1B#'8QV,5N`L&:TS9@HZ@MV;^?NM9T7?:!H)Z']WSX(L*;
MA@.*F<0L'H\0KF&#JJK:TZ:]1U@SCC)[FG<):.%NT%J%$VI@IA%MA%5-#4WB
M6OE\RIMM&V7CT?.*W'F@6=-$<5L241)3$BB)+`DM25T2[,/.[V[Y"@8Z,Q[A
M+1=K'OE!PEQ_3>4%KJL\Z!U'-["6-MB+H[MKF40GH@]KCB9IL71$.T+;VI)Y
M6@3BLR;$Q;1SBMHITMN?@=XI"_(^IOQ+?)J#=DDT3\ERZH:9G7E/@IZY_*JR
MNV"TC\^6<*`^+;]*NV@S=6^9A=1',*^&*G.03^U&O#WDP8H\//NS:O9+T441
MROYCA$46U,'1;#G`\@%&OK.T&&`#/:Y;V.^81`,]KBQ:*:`&7I1@H+5UB/06
MD4N/CF!/!?:C?@!02P,$%`````@`_;S),!U4^0V!`0``7@0```,```!C<#*-
MDU%K@S`4A9]3Z'\0Z:!EK5Q3)V5[&?1A#/8PV,->`I+&M!52%9,6]^^79*VV
M&K<A&._AR\W)243!-A,<^:S$`?/'(Q2D?(N2)#G0+']"@60"83VJKY*CI?GB
MN28,*#E369%[09521>=^6MGY5&2[W,/CT=L:'JT@699Y?DZ@(*`(<`(E`4H@
M)1#8LK9O\]@.BM=J/`IVHM@(SQII?/WER@)FU?(H]P+=\4VIBT-Q,M^RG'MG
M11XW`DTP@%&D46B>:F41QHUB9TTL06M#I(8('X8%N:^T$+4U%3?UV0>MY]XB
MC&!JS,PN>JLT/#/SDT2_"T;;^A*)G:93=O=?QK?]-7@_8&6)^^C*C>)5'PWQ
M`!LYV'B`A3Z+!W86MCL3G)KD(.HD=\5/S7'.FO1>N/I0M%+'\C7?%I_/47,;
MHN;D?[KB7YK:<.5_+=A\9;LY<ZELD%TM<FC0U\+8H3G66'5-7NZ$RZ1C[4YT
MZXI3Q=^K@G$I=7+01@?7V9VX'BNN_^%O4$L!`A0`%`````@`ZKW),,$Q'RI3
M`0``0@,```(``````````0`@`````````&-P4$L!`A0`%`````@`_;S),!U4
M^0V!`0``7@0```,``````````0`@````<P$``&-P,E!+!08``````@`"`&$`
(```5`P``````
`
end
908 bytes
>>646
gcc -DUNICODE -fwritable-strings cp.c -o cp
MSDN の CreateProcess() を見ると、

lpCommandLine
[in, out] Pointer to a null-terminated string that specifies
the command line to execute. The maximum length of this
string is 32K characters.

The Unicode version of this function, CreateProcessW, will
fail if this parameter is a const string.

なんて書いてあったりする。
M$迷惑機能ってやつか。
MinGWのインポートライブラリ(.dll.a)を
MSVC用(.lib)に変換することってできるの?
dlltoolを使えばなんとかなるんじゃないか?
MinGW+Boost age
661デフォルトの名無しさん:04/06/27 21:06
age
662デフォルトの名無しさん:04/07/08 11:48
現在の最新バージョンはMinGW-3.1.0-1.exeでgcc3.4.0は関係ないんですか?
MinGWは去年の9月から更新されてないようですが、他に最新バージョンはないんでしょうか?
663デフォルトの名無しさん:04/07/08 15:54
>>662
おぃおぃ・・・・どこのサイト見てるの?
MinGW-2.0.0-1.exe 11450 kb Sep 05, 2002 09:11
MinGW-2.0.0-2.exe 12465 kb Sep 06, 2002 04:14
MinGW-2.0.0-3.exe 12525 kb Sep 07, 2002 18:16
MinGW-3.0.0-1.exe 14733 kb Sep 05, 2003 07:25
MinGW-3.0.0-rc-1.exe 13149 kb Jul 11, 2003 12:54
MinGW-3.0.0-rc2.exe 13149 kb Jul 13, 2003 03:33
MinGW-3.0.0-rc3.exe 13303 kb Jul 15, 2003 05:36
MinGW-3.0.0-rc4.exe 14733 kb Aug 05, 2003 04:42
MinGW-3.1.0-1.exe 14863 kb Sep 15, 2003 11:14
http://prdownloads.sf.net/mingw/
「だめだこりゃ(Cイカリヤ
>>664
ネタじゃない事を祈るが・・・・
バイナリだけ欲しいならここへ逝け。
http://www63.tok2.com/home/bitwalk/download.html#mingw
667デフォルトの名無しさん:04/07/12 13:24
make するとすべてgcc -O3 でコンパイルしてエラーはくのでgcc -O2 でmakeできるように設定変えたいんですが
どうすればいいのでしょうか?
668デフォルトの名無しさん:04/07/12 13:26
>>667
CFLAGS="-O2"
669デフォルトの名無しさん:04/07/12 14:00
すみません
-O3 を -O2 に変える以外にも色々と -g や -Wall や DHAVE_AV_CONFIG_H -I.. -D…… やら
オプションが付いてるんですが、>>668を追加するとこれらを全部無視して単純に
gcc -O2 -c -o xxx.o xxx.c でコンパイルしてしまいます
-O3 を -O2にすりかえるような設定はありませんか?
>>669
-O2を-O3に変えればいいじゃん。
Makefile の該当個所を書き換えればいーじゃん。

ちうか、-O3 を -O2 にしたからって、ふつうのコンパイルエラーは解
消したりしないぞ。

672670:04/07/12 15:06
>-O2を-O3に変えればいいじゃん。
逆だね。スマンorz
./configureするまえのconfigureファイルを弄るか
./configure後のconfig.makの該当箇所書き換えで -O オプションのみの書き換えはできたけど
結局ご指摘どおり変化無しでした
-O0 だとエラーでコンパイルが止まったりします
こんなもんなのかな
>>673
どういうエラー出たか書けば?
そうしたほうが手っ取り早いような気がするが。
何を根拠に -O を変えれば解消されると思ったのか知りたい
-O2はよく見るけど-O3は見たことがない
とか
コンパイラの気持ちが分かるとか
そろそろL"〜"と元ロケール情報を食わせたらきちんとUnicode変換してくれるようにならないものですかね・・・。
この辺の予定とか分かる方居たらどんな状況なのか教えてくださいです・・・。
-finput-charset=のことかな?
>>678

>>679 のようなオプションが gccc-3.4 からあるが、MinGW などの
Windows ホストでは対応してなかった予感
Windowsだから駄目というわけじゃなく、iconvがリンクされてないだけでしょ。
MinGWの中の人のマシンにiconvをインストールしてくれば
682678:04/07/14 16:44
確かにfinput-charsetをMinGWで使おうとするとiconvが無いとはねられました。
ダメ元でiconv系のライブラリをパスの通った場所に置いてみましたがやはりだめでした。
このままでは-DUNICODEを付けてコンパイルする意味があまり無いので
そのうち対応して欲しいな、と思う次第です。ひとまずVCTKを使ってしのいでみます。
ありがとうございました。
gccをmakeするときに、iconvがない環境でやったからでしょ。
iconvがある環境でgccをmakeしてインストールすれば、待つ必要ないでしょ。
それも試したんですけど、makeがエラー吐いたので面倒になってやめました。
不運な人が多いのね?
gccを展開したディレクトリでconfigureしてたりして
gcc-3.4.0-20040501-1を適当なディレクトリに展開してMSYSからconfigureかけたんですが、まずかったんでしょうか?
gccのmakeの仕方はぐぐれば、いくらでも出てくると思うのだが

ttp://homepage1.nifty.com/kuuku/gcc-sjis/howtobuild.html
ここ参考にすれば
Win9x上での ld の問題 (EOFを超えてfseekすると、他プロセスの
メモリの内容が残ってしまう) について、いくつかパッチがあるようなんだけど
それらのパッチを有効にした ld のバイナリを配布しているような
cool なアイツは居らっしゃいませんか。
おまいがなれ
3.4.1 の RC きたね。
今度はプリコンパイルドヘッダが効くみたい。
マンセー
ロケール対応は・・・
>>686
sedのバージョン4.09だとconfigureが失敗するようです。
sedのバージョン3.02を使ってみてください。

sedの3.02は
MSYS-1.0.11-2004.04.30-1.exe
にあります。
-finput-charset=
はメッセージが出て動かないみたい。
libiconvをいれてない人もいるからかもしれない。
>>694
> libiconvをいれてない人もいるからかもしれない
は MinGW に限った話じゃないから関係無いのでわ
>MinGW に限った話じゃないから関係無いのでわ
じゃ、libiconvがある時とない時でどういう動きを期待してるんですか?
>>695さん、696です。
質問の仕方を間違えたみたいです。

libiconvがある環境で作られたgccを
libiconvがない環境で動かしたらどうなるのか教えて下さい。

linux上での動作も分かるのであれば、教えて下さい。
ぜひお願いします。
695さんではないが、
> libiconvがある環境で作られたgccを
> libiconvがない環境で動かしたらどうなるのか教えて下さい。

この場合、おそらく gcc の実行すらできない。
699695:04/07/20 23:20
憶測で言ってても仕方がないのでソースみてみた。
dlopen かなにかで必要なときのみ実行時にリンクするのかと思ってたけど特にやってないみたい (libcpp/charset.c)
なので、結局 >>698 のようになる。
パッケージシステムがあれば依存関係で解決できる問題なんだけどね。
700696:04/07/21 00:30
>>695さん
ありがとうございます。
逆にお聞きして申し訳ないのですが、
MinGW用にlibiconvをパッケージシステム対応にすることはできるのでしょうか?
できる場合、gccのソースは変更しなくてもよいのでしょうか?
>>700
やるとしてもせいぜい Makefile の書き換えぐらいだろうけど、「パッ
ケージシステム」の意味がわかってないぐらいなので、キミにはムリだ
と思われる。

まずは libiconv とか関係なしに、MinGW のソースからのビルドができ
るかどうか作業してみてね。

702696:04/07/21 13:34
GCC-3.3の頃からビルドには成功しています。
>>700さんの言われるMakefileの書き換えで
libiconvの環境があってもなくても正常に動くgcc-3.4.1が作成できるのであれば
ぜひ、教えて下さい。お願いします。
703696:04/07/21 13:36
>>702>>700は自分でした。>>701さんの間違いです。すみません。
スタティックなライブラリとかは無しにしてください。>>701さん
> Makefileの書き換えで
> libiconvの環境があってもなくても正常に動くgcc-3.4.1が作成できるのであれば

あ、それはできないよ。単に libiconv がある環境で動くものが欲しい
のかと思ってた。

選択肢:
1. あきらめる
2. libiconv をスタティックリンクする (Makefile 程度)
3. libiconv をリンクし、コンパイラと libiconv を一緒に配布する (Makefile 程度)
4. gcc の C ソースをハックして、libiconv が使える場合のみ機能するようにする
5. gcc の C ソースをハックして、libiconv なしで Windows のコード変換 API で頑張る
mingwでDLLを作ろうとしているのですが、
モジュール定義ファイルでSECTIONSを使うとSyntax Errorになってしまいます。
なにか記述に問題があるでしょうか?

LIBRARY TESTDLL.DLL

SECTIONS ←ここでエラーが登場。
  .HookSection READ WRITE SHARED

EXPORTS
  InstallHook=_Z11InstallHookv
  RemoveHook=_Z10RemoveHookv
  HookProc=_Z8HookProcijl@12
  DllMain=_Z7DllMainP11HINSTANCE__mPv@12
  hHook=D3DHook
707696:04/07/22 13:28
>>705さん
ありがとうございます。
4の方法しかないように思っていたのですが、
動くだとか楽だとかMakefileの書き換えだとか言われる方がいたので
iconv関連の3つの関数の下請け的なものを自動で作ってくれる素晴らしいのもが
あると勘違いしてしまいました。
自力でやってみます。ありがとうございました。
そんな簡単にできる手段があったら MinGW 本家が使わないわけないで
しょーが。

蒸し返すようで悪いんだけど
>>695は何を言いたかったの?
>>706
SECTIONSを丸ごと削って通るならサポートされてないのかもね。
711696:04/07/26 02:04
cとc++だけですがlibiconvのある環境で作って
libiconvのない環境(iconvは動きませんが)で
取り敢えず動く(死なない)ものが出来ました。
お騒がせして申し訳ありませんでした。
$ ../gcc-3.4.1-build.sh

The directory that should contain system headers does not exist:
/usr/include
make: *** [stmp-fixinc] Error 1

$ mkdir /usr/include
$ make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -O2" LDFLAGS=-s bootstrap

./libtool: /mingw/bin/ar: Invalid argument
make: *** [libgcj.la] Error 126

$ vi mingw32/libjava/libtool
:%s/max_cmd_len=393217/max_cmd_len=30000/g
:wq

$ make CFLAGS="-O2 -fomit-frame-pointer" CXXFLAGS="-mthreads -O2" LDFLAGS=-s bootstrap
$ cd gcc
$ make CFLAGS=-O2 LDFLAGS=-s gnatlib_and_tools
$ cd ..
$ gcc -finput-charset=us-ascii ../hoge.c
cc1.exe: no iconv implementation, cannot convert from us-ascii to UTF-8
$ make install
$ gcc -finput-charset=us-ascii ../hoge.c
$
だれかMinGWでlibgd.a作れるひとっています?
どうやってもだめ・・・cygwinならうまくいくのに
何がどう「ダメ」なのかすら書かないのか
別に作らなくても
ttp://www.boutell.com/gd/http/gdwin32.zip
にlibgd.aが入ってるじゃん、これじゃ駄目なの?
>>713-714
すみません PHPで代用のを作ってしまいました。。
MinGWはこれからいろいろ触ってみようと思います。
ありがとうございました。
717デフォルトの名無しさん:04/08/12 10:12
保守
718デフォルトの名無しさん:04/08/28 13:22
日本語、使えるようになった?
>>718
mingw公式のもutf8なら通るし、ちゃんとワイドリテラルを変換できるようになった
もよう。でもcp932は使えなくて、-finput-charset使うと落ちるしまつ。
でもこれっていつからだろう?
721デフォルトの名無しさん:04/09/18 09:56:56
MinGW で作ったバイナリのサイズって滅茶苦茶に小さいんだね。驚いた。
既出かもしれないけど、サイズ比較してみました。(まぁ、その、なんだ…不毛な実験です)

比較対象 : VC(cl v.13.10), BCC(bcc32 v.5.5.1 free), MinGW(GCC3.2.3 (mingw special 20030504-1)), MinGW(GCC+strip) の 4 つ
コード : 「猫でも分かる」の SDK イントロ(GUI)
その他 : 可能なら、UPX もかけてみる

VC
    サイズ : 22.5KB
    UPX : CantPackException

BCC
    サイズ : 46.5KB
    UPX : 22KB

MinGW(GCC)
    サイズ : 19.8KB
    UPX : NotCompressibleException

MinGW(GCC+strip)
    サイズ : 6KB
    UPX : 4KB


長レス、ごめんなさい。
722デフォルトの名無しさん:04/09/18 12:15:56
マジレスする気にもならん
723デフォルトの名無しさん:04/09/18 17:54:33
MingwはMSVCRT使ってるんだから、他のもダイナミックリンクして比較すべきだよな…

VC++6(/opt:nowin98) 3.5KB
VC++2003 4.5KB
BCC 7.5KB UPX 4KB
724デフォルトの名無しさん:04/09/18 18:07:55
cl -O1 -MD filename.c user32.lib gdi32.lib -link /merge:.data=.text /merge:.rdata=.text /section:.text,ERW /align:64

2.06kbになった
725デフォルトの名無しさん:04/09/19 16:25:24
言っておくがMinGWのiostreamはデカい事で悪名高いぞ。
それはそうとstd::bind2ndっていつから使えるようになったんだ?
3.1.1まではなぜかinclude\c++\に入ってなかったんだが。
726725:04/09/19 16:29:42
む、俺の勘違いだったようだ。逝ってくる・・・
727デフォルトの名無しさん:04/09/19 20:55:34
>>724
/align:64
これじゃ非NT系で起動しないから

/merge:.data=.text /merge:.rdata=.text /section:.text,ERW
これXP2で起動するの?

stub書換とか出来ないからVC++の方が小さくなるな。
728デフォルトの名無しさん:04/09/20 15:58:34
>>727
.textセクションにExec, Read, Writeって属性つけてるから実行できるんじゃないか?
Windows2000だから試せないが
729デフォルトの名無しさん:04/09/22 22:48:39
わお。
clって/MDオプションでかなりサイズ変わるね。
こりゃmingw出る幕ないや(w
アフォらしくなるよね
730デフォルトの名無しさん:04/09/22 23:25:50
VC7系の場合DLLも一緒に配布しないと起動しなくなるけどな。
731デフォルトの名無しさん:04/09/23 10:23:26
> [Mingw-users] Announcement: GCC-3.4.2 release candidate avalable
> Pre-compiled headers appear to work on at least two systems (NT4 and XP).
> I have not tested other windows versions. Please consider this feature a "technology preview".

PCH キター。
732デフォルトの名無しさん:04/09/23 10:34:28
xpathの勉強していて、
./my_xpath_testapp test.xml /path/to/hoge
とか打ち込んでは期待した結果が得られず、なんでー?と30分ほど時間を無駄にしたorz
勝手にd:/msys/path/to/hogeになっていたとは。
733デフォルトの名無しさん:04/09/23 10:43:53
>>731
gcc-3.4系はバグだらけだよ。
分かってるならいいけど。
734デフォルトの名無しさん:04/09/23 10:58:12
11/01 に GCC-3.4.3 がリリースの予定か・・・。
そろそろ落ち着いてくるかな。
735デフォルトの名無しさん:04/09/23 10:59:21
4.0以降に廻された修正が多いから無理だろうね
736デフォルトの名無しさん:04/09/23 11:30:45
MinGWにはSTLport。俺の脳内ではこれがデフォルトですよ。
バージョンが変わった時の再ビルドもすごく簡単だし、3.4.1からは
コンパイル時のへんな警告も出なくなったし。

ビルド時の警告は相変わらずだが。
737デフォルトの名無しさん:04/09/24 12:55:17
> * libgcj requires libiconv. You can download sources or prebuilt
> binaries from the maintainers. See:
> http://www.gnu.org/software/libiconv.
> My testing has been done with libiconv-1.9.2 built (using mingw) as a
> static lib.
3.4.2
スタティックだけど、libiconvがリンクされてる。
-finput-charset=が動く。
738デフォルトの名無しさん:04/09/26 09:28:12
ついにシフトJIS系のソースもコンパイル可能に? > 3.4.2
739デフォルトの名無しさん:04/09/26 09:29:23
×系 ○エンコード
740デフォルトの名無しさん:04/09/26 10:41:58
SHIFTJIS系
SJIS IBM-SJIS NEC-SJIS WIN31J CP932
741デフォルトの名無しさん:04/09/29 01:42:32
>>740 IBM-SJISってのも大雑把だよなあ。942/943/932どれのことか
それだとわけわからん。って932はもう有効じゃないか。
742デフォルトの名無しさん:04/09/30 04:06:34
conversion from IBM-SJIS to UTF-8 not supported by iconv
conversion from NEC-SJIS to UTF-8 not supported by iconv
conversion from WIN31J to UTF-8 not supported by iconv
conversion from CP942 to UTF-8 not supported by iconv
743デフォルトの名無しさん:04/09/30 06:16:04
もしかしてiconvは実装が一つしかないと思ってる痛い人?
744デフォルトの名無しさん:04/09/30 16:37:45
742のgccのエラーにならないWindowsで使えるlibiconv?があるの?
どこにあるのか教えてよ>>743
745デフォルトの名無しさん:04/10/01 00:08:17
本家mingwの3.4.2はスタティックリンクだから、libiconvのdllに
PATH通ってなくても死なないのはいいんだけど、
ttp://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.9.2-cp932-patch.html
これじゃないのが痛い?

libiconvに罪はないけど
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP170559
これも痛い?

どうせやるならLoadLibrary等使ってlibiconvをダイナミックリンクできる様にしてほしかった。
おらは自前でやってるから関係ないけど
746デフォルトの名無しさん:04/10/01 17:18:42
3.4.2はどうかね。PCH使いたいんだけど3.4.1は糞すぎたから敬遠気味
747デフォルトの名無しさん:04/10/02 00:36:49
糞かどうかはわからんがReactOSはPCHを使ってるみたいだけど
748デフォルトの名無しさん:04/10/02 01:42:40
ReactOSぐらいになるとバクがあるから使えないとか言ってらんないんだろうな。
749デフォルトの名無しさん:04/10/02 09:41:36
ROS_USE_PCHはデフォルトでnoになってるけどね
750デフォルトの名無しさん:04/10/03 01:50:02
前向きでいいジャン。糞なPCHならそんな定義追加しないだろうし。
751デフォルトの名無しさん:04/10/03 22:49:21
カーネルビルド時間が3割削減できるって話だな。バグが取れて安心して使えるようになれば是非とも使いたいところ。
752デフォルトの名無しさん:04/10/04 03:01:00
>>746
http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
3.4.2でPCHの変更はない。

http://www.thisiscool.com/gcc_mingw.htm#gcj40
9x/MeではPCHが出来ないが、
これを使っても糞と判断するなら、PCHは(GCCも)使わない方がいい。

PCHの注意点
gccでコンパイルしたヘッダーはg++のヘッダーとしては使えない。逆も
複数個のコンパイルしたヘッダーをincludeすると多分、おかしくなる。
753デフォルトの名無しさん:04/10/09 23:51:28
良く分かんないけどVC++でいうstdafx.hを作ってそれをコンパイルすればいいの?
754デフォルトの名無しさん:04/10/10 20:15:17
Using Precompiled Headersの説明をみると
all.hで必要なヘッダーを#includeで読み込むようにしてall.hをコンパイルする。
ソースファイルで#include "all.h"とすれば、コンパイルしたヘッダーを使うよ。
って、
プリコンパイルしたヘッダーは一個しか使えない?って注意があるね。
755デフォルトの名無しさん:04/10/11 00:51:22
ちょっと補足
all.hの内容
#include <windows.h>

hoge.cの内容
#include "all.h"
int main(){ return 0;}

ヘッダーall.hのコンパイルは
gcc all.h
で、all.h.gch(ファイルサイズに驚かないように)というのができる。
これがプリコンパイルされたヘッダーになる。

gcc hoge.c
でコンパイルできる。もし,all.h.gchというファイルがない場合は、
all.hが通常のヘッダーとして使用されるだけです。
PCHがサポートされてないgccもコンパイルできるということです。


756デフォルトの名無しさん:04/10/16 03:01:18
-MMD で依存関係を自動生成してるんですが、プリコンパイルしたヘッダを拾ってくれなくなります。
test.cpp に #include "stdafx.h" がある時に、ヘッダをコンパイルしていなければ、
test.d に test.o: test.cpp stdafx.h ... など出力されますが、コンパイルしておくと、
test.o: test.cpp だけになってしまいます。
プリコンパイルしても依存関係が出力されるようにするには、どうしたらいいのでしょうか?
757756:04/10/16 03:02:34
age 忘れました。
758デフォルトの名無しさん:04/10/16 14:43:27
-MMDは現状プリコンパイルしたヘッダには無効のようです。
報告はされているみたいですが...
759756:04/10/16 18:59:05
>>758
バグなら仕方が無いので、.cpp の依存関係に stdafx.h.gch を足しておきます。
ありがとうございました。
760デフォルトの名無しさん:04/10/21 21:50:10
candidateのgcc3.3.3って3.3.1とくらべてどうですか?
761デフォルトの名無しさん:04/10/22 00:10:08
みんな GUI には何使ってますか?
windows API が一番楽そうですが,いろいろあるのでどれにしようか迷っています.
仲間うちで使うものなので分かりやすいインターフェイスが必要なんです.

良く分からなかったら入力ファイルを用意してもらおうかな (w
762Ruby!!!:04/10/22 00:18:55
ハァ? 何いってんの?このヒト
763デフォルトの名無しさん:04/10/22 00:54:35
>>761
WindowsAPIが一番楽そうだというのもなんだかなぁ・・・
764デフォルトの名無しさん:04/10/22 00:58:57
>>761
金あるならQt
英語読めるならwxWidgets
GTK+は...俺は嫌い
765デフォルトの名無しさん:04/10/22 01:30:48
GTK+はランタイム必須だから難しいだろうなぁ
766デフォルトの名無しさん:04/10/22 01:47:38
>>760
3.3.1で問題ないならそのままでいいのでは?
安心感がほしいなら、mingwにこだわらない方がいいよ。
767761:04/10/23 00:04:11
>>762
無知スマソ.単体のバイナリ希望なので wxPython や wxRuby は...

教えていただいた wxWidgets の新スレ (名前が変わってる!) にいってみたところ
素敵なチュートリアルサイトが貼ってあり,
そこで WindowsAPI はそれ程でも無いようなことが書いてありました.
危うく環境依存 && 苦難 の道に陥るところでした.
ありがとうございました.
(数ヶ月前に wxWindows を調べたときより入門しやすくなっているような)
768デフォルトの名無しさん:04/10/23 19:20:34
>>761
VCL がいい。
769デフォルトの名無しさん:04/10/23 20:46:07
>>768
MinGW で動くの?
770デフォルトの名無しさん:04/10/23 21:33:57
>>769
しらない。
771本田:04/10/24 00:58:42
>>761
Tcl/Tk
772デフォルトの名無しさん:04/10/24 05:55:09
>>761
金あるからQt
773デフォルトの名無しさん:04/10/24 10:35:18
>>771-772
どっちもうんこなんだよなあ
774デフォルトの名無しさん:04/10/24 10:36:21
qtは良いちょ。
775デフォルトの名無しさん:04/10/24 13:54:11
Linuxオンリーならな。
776デフォルトの名無しさん:04/10/24 14:13:13
ばかばっかwwwwwwwwwww
777デフォルトの名無しさん:04/10/24 14:55:51
Linux からクロスコンパイルで開発できることを最近知りました.
これから始めます.

万が一のことが起こるとこのスレに帰ってこられないかも知れません.
778777:04/10/24 23:08:24
クロスコンパイルは私には無理でした.
binutils もビルドできずに降参しました.
これから素直に MSYS 入れます.



でもクロスコンパイルについてチュートリアルがありましたら教えてください.
英語サイトでも見付からなかったもので.
779デフォルトの名無しさん:04/10/24 23:38:21
780デフォルトの名無しさん:04/10/24 23:52:20
Linux はしらんけど、FreeBSD の ports とか NetBSD の pkgsrc だっ
たら簡単にクロス環境を構築できるみたいっすよ。

781デフォルトの名無しさん:04/10/30 09:27:56
>binutils もビルドできずに降参しました.
bison,flexは当然必要だが、gettext必須。ないとmakeでこける。

http://kegel.com/crosstool/
782デフォルトの名無しさん:04/10/31 23:45:09
g++ を使ったら,メモリが足りないといったエラーが出た (詳しくは忘れた).

そこで,コンパイルとリンクの手順を分けたら出なかった.
g++ ... -c hoge.cc -o hoge.o
g++ -l... hoge.o foo.so bar.so

コマンドプロンプトを使うのが間違いなんですかそうですか.
783rubykitch:04/11/01 00:11:05
アホっぽい
784デフォルトの名無しさん:04/11/01 02:15:04
>>782
最初の一行と最後の一行がどう繋がっているのかサッパリ理解できない
785782:04/11/01 09:45:13
>>784
スマソ.実は MSYS 使ってないなかったんです.
もう必須なんですね.

cmd.exe 以上 MSYS 以下のプログラムってあるんですか?
786デフォルトの名無しさん:04/11/01 20:06:15
>>785
君、凄く面白い。
才能あるよ。
787デフォルトの名無しさん:04/11/01 21:06:24
>>785
cmd.exeとMSYSがあるじゃないか。
788782:04/11/01 23:30:23
ここは感じ悪いインターネットですね.
時間ができ次第 sourceforge から探すつもりでいますが,
既に試している人がいたら教えていただきたいのですよ.

でも外国から探しても,iconv にリンクしてビルドしないと
日本語ディレクトリでコケたりすることが多いんですよね.
789デフォルトの名無しさん:04/11/02 00:01:14
教えてもらう立場でのっけに「感じ悪い」なんて逝っちゃう方もどうかしてる。
790デフォルトの名無しさん:04/11/02 00:34:58
何故こういう反応しかされないのか、を考えようとはしないんだろうなあ
791デフォルトの名無しさん:04/11/02 01:18:13
>でも外国から探しても,iconv にリンクしてビルドしないと
>日本語ディレクトリでコケたりすることが多いんですよね.

何気にこれもおもしろいなあ。どんな元ソースなんだろ。
792デフォルトの名無しさん:04/11/02 12:05:41
>> 790
きっと、日本語が分からない外国の人なんだよ。
明らかに文章が変だし・・・
793デフォルトの名無しさん:04/11/02 15:35:13
MinGWコミュニティ崩壊をたくらむ三国人だろうな
794デフォルトの名無しさん:04/11/02 16:21:01
>>777>>780
ttp://www.freebsd.org/cgi/ports.cgi?query=mingw&stype=all
ttp://www.jp.netbsd.org/ja/JP/Documentation/Packages/list/cross/i386-mingw32/README.html
これか。ちなみに漏れはDebianだが、一応公式、非公式.debがある。
ttp://packages.debian.org/unstable/devel/mingw32
ttp://debian.speedblue.org/
ただ、Adaがなぜかビルドできない。
make gnatlib cross-gnattools ada.all.cross
ってやってるのだが...
795デフォルトの名無しさん:04/11/02 20:01:00
ada作るにはadaがいるんですよ。
796デフォルトの名無しさん:04/11/02 20:32:02
ada作るためのada作るにはadaがいるんですよ。
797デフォルトの名無しさん:04/11/02 22:10:04
あぁだからだめなのか
798794≠797:04/11/03 03:00:44
~$ dpkg -l | grep gnat
ii gnat-3.3 3.3.4-13 The GNU Ada compiler
ii gnat-3.3-doc 3.3.4-13 Documentation for the GNU Ada compiler (gnat
だが、
あぁだからだめなのか
cross-gnatgccってことか。
mingwのサイトにあるprebuild binaryがいるな。
でもマンドクサイからAda使わない事にしますた
799デフォルトの名無しさん:04/11/03 03:28:42
ホストOSで使えるgnat入れれば、クロスなmingwのgnatまではできる。
Vineでやってるから、FC2からgcc関連のRPMをごそっと入れたけど
gnatlibとgnattoolsのmakeで挫折中。どうやればいいんだ?
出来ても、多分使わないと思うけど、make組になりたくない。
800デフォルトの名無しさん:04/11/03 23:40:01
Dev-C++を入れてサンプルを見つけてコンパイルしたのですが
WinMain@16 が未定義となってコンパイル出来ません。

どうしたらいいでしょうか?
801デフォルトの名無しさん:04/11/04 05:26:53
mingw WinMain@16で ぐぐれ、
http://www.google.co.jp/search?hl=ja&q=mingw+WinMain%4016&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

エラーだけじゃ、
答えられん時もあるのでサンプルのある場所とか書いてくれ。

はずれかもしれんが一応
http://d.hatena.ne.jp/kazy/20040914
http://na.yuki.st/diary/200212.html#20021206
802デフォルトの名無しさん:04/11/04 09:39:31
-mwindows
803800:04/11/04 12:19:22
>>801
>>802
ありがとうございます。リンカっていうのもわからないくらいだった
のですが、なんとかWinMain@16はでなくなりました。

でもまたerrorが出てコンパイル出来ません。
猫でもわかるの57章なんですが、ぐぐったらWinMainの定義が
違うと出ていました。
804デフォルトの名無しさん:04/11/04 14:19:37
WinMain (HANDLE hInst, HANDLE hInstPrev ... )
とか書いちゃってるんだな。
HANDLE を HINSTANCE に替えるとどうよ?
805デフォルトの名無しさん:04/11/04 14:37:19
>>804
#include <windows.h>

int WINAPI WinMain(
HINSTANCE hInstance ,       //*変えて
HINSTANCE hPrevInstance ,        //* みました
LPSTR lpCmdLine ,
int nCmdShow )
{
MessageBox(NULL,
(LPCSTR)"ありがとうございます",
(LPCSTR)"MinGWを使おう",
MB_OK);
return 0;
}

C:\Dev-Cpp\新しいフォルダ\Makefile.win [Build Error] [プロジェクト1.exe] Error 1
となってしまいます。
806デフォルトの名無しさん:04/11/04 15:03:16
引数使わないなら
__stdcall WinMain(a,b,c,d)
でいいよ
サイズが同じであればいいんだから
807800:04/11/04 15:24:37
>>806
ありがとうございます。
しかし何をしてダメです。新規プロジェクト→WinAppを選んで
何もいじらないで保存しコンパイルしてもerrorが出てきます。


808デフォルトの名無しさん:04/11/04 15:31:07
>805って、もっと詳しいエラーメッセージは出てこなかった?
「main が見つからないよ」みたいなリンクエラーが出てたりして。
コンパイルエラーじゃなくて。

あと、ファイル名ってどうなってんの?
Dev-C++よく知らないけど、大抵のコンパイラは
拡張子が .c なら C言語として、.cpp なら C++としてコンパイルする。

Makefile.win の中身も気になるな。
809800:04/11/04 15:49:56
すいません。再インストールしてみたら無事に起動いたしました。
しかしなんで今度はWinmain@16のエラーが出なかったのか
不思議です・・・
810デフォルトの名無しさん:04/11/04 15:51:28
>>807
>>806のプログラムは問題なく動くはずだが・・・
Dev-cppの設定でmakeプログラムの指定は、ちゃんとgccのmake.exeが
指定されてるよね?

bccとか他の環境のmake.exeだとエラーになるよ。
Mingw32のmakeはmingw32-make.exeとリネームされてるので要注意。
811デフォルトの名無しさん:04/11/04 16:01:22
Dev-C++でぐぐれ、そしてDev-C++の使い方を学べ
http://www.google.co.jp/search?hl=ja&q=Dev-C%2B%2B&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
812800:04/11/04 16:22:00
>>810
>>811
使っていきながら覚えていきたいと思います。
ほんとうにありがとうございました!


813デフォルトの名無しさん:04/11/05 02:37:37
がんがれ>>812
Dev-C++もいいけど、コマンドラインから
gcc hoge.c
みたいなこともできるようになるといいかも
814デフォルトの名無しさん:04/11/05 23:14:01
VCとか完全な統合環境で無い限りはコマンドライン覚えたほうがトラブル少ないと思うけど
815デフォルトの名無しさん:04/11/05 23:14:18
>>813
> みたいなこともできるようになるといいかも

そこでメモリが足りない>>782ですよ。
816デフォルトの名無しさん:04/11/06 00:41:29
そういうときは-vオプションつけてgccを起動するですよ。
817デフォルトの名無しさん:04/11/16 01:31:27
mingw/msys上でreadlineを使った簡単なテストコードを書いてみたのですが、
msysのrxvt上で動かすと奇妙な動きをします。
具体的には、最初のプロンプト"> "は出るものの、改行してもreadline()から戻らず
フリーカーソルモードのようにいろいろ編集できてしまうのです。
cmd.exe上から実行してみると思った通りに動くのです。

テストコード
/* gcc -Wall -Werror -g -o rltest rl.c -lreadline */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <readline/readline.h>
#include <readline/history.h>

int
main(void)
{
    char *line;
    while (1) {
        line = readline("> ");
        if (!line || strcmp(line, "quit") == 0)
            break;
        add_history(line);
        printf("your input is %s\n", line);
        free(line);
    }
    return 0;
}
818アホ:04/11/19 00:16:43
printfのあと、stdoutにfflushしてみ
819デフォルトの名無しさん:04/11/19 00:28:47
お前らアホ?
820デフォルトの名無しさん:04/11/21 04:01:40
>>818は自己申告しておられます。
821デフォルトの名無しさん:04/11/22 14:57:10
822デフォルトの名無しさん:04/11/22 17:56:10
MinGWをみんぐぅと読んだら笑われたんですが、何と読むべきなんでしょうか?
823デフォルトの名無しさん:04/11/22 18:31:15
ミンジィダヴリュー
824デフォルトの名無しさん:04/11/22 19:02:02
ミニマリストグニューウィン
825デフォルトの名無しさん:04/11/22 20:19:10
そんなのはプログラマの基本だ。
ミニマムゴールデンウィーク
826デフォルトの名無しさん:04/11/22 20:27:21
ミングー
827デフォルトの名無しさん:04/11/22 21:14:41
みんぐうぃん
828デフォルトの名無しさん:04/11/23 04:40:55
ペンギン君のキャラクターをマスコットにしよう。
萌え萌えな奴。
口ラッパの形にして「MinGW-!」て叫ぶの。
829デフォルトの名無しさん:04/11/23 07:04:41
GNU=ヌー

ミニマリストヌーウィン
830デフォルトの名無しさん:04/11/23 09:21:00
>>829
GNU はぐにゅって発音するんだよ。
831デフォルトの名無しさん:04/11/23 10:25:11
>>830
いやいや、ネイティブは「ジー・エヌ・ユー」って発音するらしいよ。
832デフォルトの名無しさん:04/11/23 18:04:03
漏れはミングゥとグニューって読んでるよ。
周りの人間もこう読みだしたら勝ちだ。
読み方なんて所詮そんなもんだ。
ただ公式な場だと困るかもしれんが…
ついでにCygwinはシグウインかシグウィンって読んでるよ。
833デフォルトの名無しさん:04/11/23 18:28:18
ついでにnullpoはぬるぽって読んでるよ。
834デフォルトの名無しさん:04/11/23 18:35:03
ミンジーダブリュー
グヌ
シグウィン
ガッ
835デフォルトの名無しさん:04/11/23 20:54:06
俺はGNYOと書いて「ぐにょ」と読ませるOSの事が頭に思い浮かびましたよ
836デフォルトの名無しさん:04/11/24 00:39:37
すまなかった。
To avoid horrible confusion, please pronounce the `G' in the word `GNU' when it is the name of this project.
837デフォルトの名無しさん:04/11/24 08:20:26
つまり、「グニュー」か「グヌー」と読めってことかな?
838デフォルトの名無しさん:04/11/24 09:57:48
ttp://www.gnu.org/
> it is pronounced “guh-noo.”

ttp://web.archive.org/web/20001121030400/http://www.gnu.org/index.html
> it is pronounced "guh-NEW".
839デフォルトの名無しさん:04/11/25 02:50:55
へぇ〜へぇ〜へぇ〜
840817:04/12/01 01:29:38
>>818
ありがとう。残念ながら状況は変わらなかったです。
readlineだけでなく単にstdinからのfgets()でも同様の症状になる(ということはreadlineの問題じゃないのか)けど、
どうすればいいのだろうか…
何も弄ってないはずなのだが…termcapとか眺めてもよく分からない。
841デフォルトの名無しさん:04/12/05 22:23:57
MinGWではdrand48()は使えないんですか?
842デフォルトの名無しさん:04/12/06 06:40:23
>>841
drand48.cをゲットしてコンパイルするよろし。
性能的にはMersenne Twisterのほうが良いけど。
843デフォルトの名無しさん:04/12/08 08:35:00
mingwでDLLを作ったときに、__stdcall呼び出しのexportする関数名が
「〜@数字」みたいになりました。
この@から後ろを消したいんですが、どうすりゃいいですか?
VCみたいにDEFファイル書いても効果ないみたいです。
DEFファイルの書き方がまちがってるのかな。
844デフォルトの名無しさん:04/12/08 08:49:10
845843:04/12/08 09:04:54
できました!

gcc -O2 -shared -o hoge.dll hoge.c -Wl,--kill-at
strip hoge.dll

サイズも小さいしVCみたいにDEFファイルいらないなんて素晴らしいです。
846デフォルトの名無しさん:04/12/09 01:41:58
で、こうやってできた DLL(__stdcall で --kill-at なやつ) を、リンクするような
実行ファイルは、どうやって作ってる?
__stdcall だけど --kill-at じゃない DLL とか、__cdecl な DLL なら、
gcc main.c hoge.dll
ってできてインポートライブラリ不要なのに、
__stdcall で --kill-at な DLL だと、こうはできないし。

dlltool で インポートライブラリを作ろうとしても、
dlltool --kill-at
で作られるインポートライブラリでは、定義されてるシンボルも @数字 が消されてるので、
@数字 つきのオブジェクトファイルとはリンクできないし。

一見、こういう場合に使えそうかのように思える ld --enable-stdcall-fixup は、
オブジェクトファイルを読み込んだ後でしか働かず、
ライブラリのサーチ時には働いてくれないし。

やっぱ、DLL の作成時に、同時に --out-implib でインポートライブラリも作っておくしかない?
847デフォルトの名無しさん:04/12/10 00:26:27
dlltool --kill-at は勘違いだった、スマソ
--kill-atの問題ではなくて、ld が出力するdefファイルを、そのままdlltoolに入力するのではいけないようだ。

なんでこう、どれもこれもかゆい所には微妙に手が届かないんだろう
848デフォルトの名無しさん:04/12/10 11:44:55
--kill-at って、一見意味不明なオプションだよな。
それとdlltoolとかって本来便利ツールなんだろうけど、
コマンドの体系もクソもないから混乱するだけだし。
いっそのことgccやldに全部組み込んでくれよな。
GNU周りのツールってこういうとこ全くセンスない。
あり物で済まそうとするから益々混沌化していくし。
849デフォルトの名無しさん:04/12/10 12:06:17
gccに全部入れたら、それこそ訳分かんなくなるだろ
おまい大丈夫か?
850デフォルトの名無しさん:04/12/10 20:58:34
>>848
UNIXの文化についてけないなら、GCCなんて使わずにおとなしく
VC買ってゲイツにでも貢いでろよ。
851デフォルトの名無しさん:04/12/10 21:11:32
What does GNU stand for?
852デフォルトの名無しさん:04/12/10 21:19:20
853デフォルトの名無しさん:04/12/10 23:02:46
>>848
良いフロントエンドを書いたらネ申になれるチャンスかも
854デフォルトの名無しさん:04/12/12 04:36:35
dlltool --kill-at --output-lib libhoge.a --dllname hoge.dll hoge.o
855デフォルトの名無しさん:05/01/05 20:43:14
Mingw/Msys/MsysDTKをインストールしてexpat-1.95-8をコンパイルしたところ、
(gcc-3.2.3)
./configure --prefix=/usr/local
make

....中略...

/bin/sh ./libtool --silent --mode=link gcc -O2 -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H
-I./lib -I. -no-undefined -version-info 5:0:5 -rpath /usr/local/lib -o libexpat.la lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo

d:\mingw\bin\..\lib\gcc-lib\mingw32\3.2.3\..\..\..\..\mingw32\bin\ld.exe: warning: cannot find entry symbol _DllMainCRTStartup@12; defaulting to 00401000

d:/mingw/bin/../lib/gcc-lib/mingw32/3.2.3/../../../libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to `WinMain@16'

make: *** [libexpat.la] Error 1

といわれて失敗しました。これはどこを調べればよいのでしょうか?
856デフォルトの名無しさん:05/01/05 20:55:52
スタートアップのリンクに失敗してる
パスが可笑しいんじゃなイカな
確かこれはね、gcc引数の順番だったと思うよ
857デフォルトの名無しさん:05/01/05 20:57:32
あ、つまりリンクオプションの順番変えてみろってことね
" WinMain@16 Mingw "辺りでググれば沢山出てくるよ
858デフォルトの名無しさん:05/01/05 21:16:27
WineHQ
http://www.winehq.com
英語を(自動翻訳などで)読める貧乏winapi使いは一度は見ろ。winエミュ。運がよければリファレンスも見れる。

Dev-C++
http://www.bloodshed.net
英語のみで補完遅く日本語フォントダメだが、mingwとサンプル付きの使える環境。
859デフォルトの名無しさん:05/01/05 21:36:32
devcppの入力補完は発狂中。補完は必ず無効にして別に外部エディタ使え。
860デフォルトの名無しさん:05/01/05 23:46:34
3.4.2になってから<ext/hash_map>が使えるみたいだけどhash_fun.hのデフォルトテンプレートパラメータに
std::stringがないのはなぜなんだ・・・。STLportではデフォルト用意されてるのに。
861デフォルトの名無しさん:05/01/05 23:48:44
そんな標準でもない機能に文句付けるなよ
862デフォルトの名無しさん:05/01/06 00:04:08
無ければ作ればいい
人的リソースが少ないんだから積極的にフィードバックしないと
いつまでたっても寂しい状況のままだぞ
863デフォルトの名無しさん:05/01/07 05:31:36
>>857-858
ありがとうございます。
どうもexpatに付属するlibtoolが古い(1.4.x)のが原因のようでした。

conftools/ディレクトリ下のconfig.guess, config.sub, ltmain.sh, libtool.m4を/usr/share/aclocal以下にある1.5のものと交換して
autoheader && autoconf
./configure --prefix=/usr/local
make
でコンパイルできました。

それでもなおxmlwfのビルドに失敗しますが、コレはぐぐったらパッチが存在したのであてればOKだと思われます。
今回は不要なのでスキップしました。
864デフォルトの名無しさん:05/01/10 01:52:19
3.2.0 RC1 でた
865デフォルトの名無しさん:05/01/10 20:42:57
50Mでか過ぎ
866デフォルトの名無しさん:05/01/10 22:36:21
今回はあまりにも間が空いたから、個別に同等品を入れてしまっているなあ(^^;
しかし、adaとか、Obj-Cはデフォルトで入れるほど需要あるんか(^^;
867デフォルトの名無しさん:05/01/10 23:39:53
>>866
Ada,Obj-Cそれぞれのコンパイラのセルフコンパイルにも使うんじゃない?とか
868デフォルトの名無しさん:05/01/11 07:22:43
>>867
バイナリの個別パッケは存在するから、別途インストールにすることも可能。
故に不思議。
869デフォルトの名無しさん:05/01/16 12:42:36
Obj-Cはマックでたくさん使われてるし、Adaは軍でたくさん使われてるだろ
870デフォルトの名無しさん:05/01/16 14:07:22
>>869
んなわけない・・・
871デフォルトの名無しさん:05/01/16 20:56:51
872デフォルトの名無しさん:05/01/17 00:26:33
mingw用のccacheって無いんですか?
make通らないしgoogleで探してもcygwin用しか見つからないし・・・
873デフォルトの名無しさん:05/01/17 15:01:20
MSYS ってアーカイブを展開するだけでインスコできないんですか?
「このマシンでちょっとビルドさせて」っていう使い方をしたいのですが.
874デフォルトの名無しさん:05/01/17 18:57:14
>>873
?
875デフォルトの名無しさん:05/01/17 19:08:35
そうだなあ、PATHは通さないといけないかもなあ。
とかそういう意味?
876デフォルトの名無しさん:05/01/17 19:14:37
>>873
./configur できない?
877873:05/01/17 20:28:10
あっ,ごめんなさい.MSYS 自体のイントールです.
展開のみをインストールというか分かりませんが,
インストーラを動かさずに導入できればいいなと思ったんです.
878デフォルトの名無しさん:05/01/17 22:54:52
>>877

おれのば耶いは、あるマシンにインストールしたMinGW32+MSYSの
ディレクトリ構造をゴッソリコピーするという方法で別のマシンに導入してる。
(c:\mingw以下全てとc:\msys以下全て)

コピーしたマシンに↓の環境変数与えてちゃんと動いてます。多分。
CLANG=C-SJIS
PATHに c:\mingw\bin 追加
MSYSがあればPATHに c:\msys\1.0\bin も
879873:05/01/18 17:11:40
>>878
サンクス! (・∀・)

それは移行先で絶対パスが変わっても動くのかな?
880878:05/01/18 20:27:04
>それは移行先で絶対パスが変わっても動くのかな?
正直やった事がない。
881デフォルトの名無しさん:05/01/19 02:06:00
>>879
/etc/fstab修正かな
882デフォルトの名無しさん:05/01/19 07:36:41
藻前ら、自分で試しもしない教えて君に親切だな。
883873:05/01/19 23:24:46
>>882
スマソ.うちに Windows の NT 系が無いんで,
出先で試す予定だったんだが,今日はできなかった.
明日いじくってみます.
884デフォルトの名無しさん:05/01/20 00:40:21
まあ、正常に動作しなくても無保証だからな。
885デフォルトの名無しさん:05/01/21 06:31:14
886Rubyist!:05/01/28 22:42:24
この手のIDEは既にいっぱいあると思うのだが。
887デフォルトの名無しさん:05/01/29 11:26:03
まぁいっぱいあって困ることもなかろう。
888デフォルトの名無しさん:05/01/29 15:37:54
いっぱいあるってことは、それだけ開発リソースが分散しているということだ。
まあどうせ使わないから困らないけど。
889デフォルトの名無しさん:05/02/08 15:19:31
teiki age
890デフォルトの名無しさん:05/02/12 01:46:35
agae
891デフォルトの名無しさん:05/02/27 15:32:22
25.2MB、だ
892デフォルトの名無しさん:05/03/01 23:45:08
binutils は mingw と djgpp で違うものなんだな.
djgpp の方が PATH が先だったらしくてチョト嵌った.
893デフォルトの名無しさん:05/03/05 20:36:10
違うってそりゃ djgpp って DOS 用なんじゃ...
894デフォルトの名無しさん:05/03/05 21:14:39
djgpp と mingw と cygwin が混在している環境を想像してみる。うえー
895デフォルトの名無しさん:05/03/05 23:33:15
え、普通だと思うけど?
素人さんですか?
896デフォルトの名無しさん:05/03/05 23:55:30
それぞれの開発環境の長所を使い分けるわけですよ
897デフォルトの名無しさん:05/03/06 00:21:00
djgppなんて何に使うの?
898デフォルトの名無しさん:05/03/06 02:27:56
cygwin入れてるのならmingwいらんと思うんだが
899デフォルトの名無しさん:05/03/06 02:54:27
確かに昔のCygwin内のmingwはちょっと問題あったが今はもうなかったような
900デフォルトの名無しさん:05/03/06 03:36:51
以前の経験では素のmingwとcyginの-mno-cygwinでC++オブジェクトの
互換性が微妙になかったんだけどもう解決されているのかしら。
901デフォルトの名無しさん:05/03/06 09:42:02
マジで? んじゃCygwinに統一しようかな。
902デフォルトの名無しさん:05/03/06 21:05:31
それでもMinGW+MSYSのほうが好きだなぁ
903デフォルトの名無しさん:05/03/06 22:39:09
好き嫌いの話なんて誰もしとらんがな
904デフォルトの名無しさん:05/03/15 19:52:43
MinGWでiostreamをインクルードした時のバイナリの巨大さに辟易しているのですが、
なんとかlibstdc++のスタティックリンクの代わりに、
msvcp*.dllをシェアードリンクする方法はないでしょうか?
905Rubyist:05/03/15 19:58:42
無理。stripするぐらいしか手はない。
906デフォルトの名無しさん:05/03/15 20:01:09
>>904
STLportをビルドして、そいつのDLLを喰わせている。俺の場合。
配布する際にはあまり役に立たないが、中で遊ぶ分には十分だ。
907デフォルトの名無しさん:05/03/15 21:00:39
MSVC Toolkit を GNU Make から呼んだ方がいいのかなあ、と思うようになった今日このごろ
908デフォルトの名無しさん:05/03/15 21:43:22
909デフォルトの名無しさん:05/03/15 23:32:18
msys/vctoolkit+platformsdkが最強?
910デフォルトの名無しさん:05/03/15 23:48:29
VS.NET2003が最強。とか言っちゃうと見も蓋もないな
911デフォルトの名無しさん:05/03/16 21:01:03
msys使いづらいと思うんだけどなぁ
912デフォルトの名無しさん:05/03/16 22:19:24
dokorahennga?
913904:05/03/16 22:28:07
「シェアードリンク」ではなく「ダイナミックリンク」が正しいですね。すいません間違えました。
やっぱりMSVC++ Toolkit 2003を使うしかないですかね・・・。

>>906
STLPortは、スタティックリンクした時のバイナリのサイズはどのくらいになるんでしょうか?
libstdc++の時とあまり変わらないですか?
914デフォルトの名無しさん:05/03/16 23:00:37
でかいよ
915デフォルトの名無しさん:05/03/16 23:27:42
すごく…おおきいです…
916904:05/03/16 23:30:10
そうですか・・・。
C++はMSVC++ Toolkit 2003を使うことにします。
ありがとうございました。
917デフォルトの名無しさん:05/03/16 23:30:45
>>913
libstdc++に比べ100KBほど大きくなる。
918デフォルトの名無しさん:05/03/16 23:31:59
なんでSTLportのDLLが嫌なんかよくわからん。
919デフォルトの名無しさん:05/03/17 00:25:56
unko
920デフォルトの名無しさん:05/03/19 10:45:11
バイナリが大きいと困ることって何ですか?
921デフォルトの名無しさん:05/03/19 13:17:34
メモリ喰う
922デフォルトの名無しさん:2005/03/24(木) 03:22:49
意味があるかわからんが、できたんで とりあえず報告。

mingw32(binutil,gcc,g++,w32api)をMacOS X 10.3でビルドして、
winバイナリをクロスコンパイルできました。
923デフォルトの名無しさん:2005/03/24(木) 04:10:10
924デフォルトの名無しさん:2005/03/25(金) 16:14:02
925デフォルトの名無しさん:2005/03/25(金) 23:16:16
926デフォルトの名無しさん:2005/03/26(土) 03:47:36
927デフォルトの名無しさん:2005/03/26(土) 10:25:12
928デフォルトの名無しさん:2005/03/26(土) 11:30:53
ζ
929デフォルトの名無しさん:2005/03/26(土) 14:17:47
ν
930デフォルトの名無しさん:2005/03/26(土) 16:49:58
V
931デフォルトの名無しさん:2005/03/26(土) 17:26:01
Φ
932デフォルトの名無しさん:2005/03/26(土) 22:09:22
933デフォルトの名無しさん:2005/03/26(土) 23:21:14
934デフォルトの名無しさん:2005/03/26(土) 23:37:27
935デフォルトの名無しさん:2005/03/26(土) 23:40:43

936デフォルトの名無しさん:2005/03/26(土) 23:47:03
937デフォルトの名無しさん:2005/03/27(日) 00:11:50
938デフォルトの名無しさん:2005/03/27(日) 00:52:46
939デフォルトの名無しさん:2005/03/27(日) 00:55:33
940デフォルトの名無しさん:2005/03/27(日) 17:09:22
僕は、神山満月ちゃん
941デフォルトの名無しさん:2005/03/30(水) 14:32:43
mingw-jpのサイトでさ、色々問題点が挙げられてるけど、
http://mingw.biggie.jp/mingw_issue.html
日本語関連以外の問題については最近のmingwは修正されてるの?
特にstd名前空間の問題とか気になるんだが・・・
942デフォルトの名無しさん:2005/03/31(木) 00:09:37
MingWを、どうしてもWin32でやる場合の奥の手としてならともかく、
メインの開発環境とするには
MSVCRTの代替ランタイムでも作らないと無理。
ムリムリムリムリかたつむりよ。
943デフォルトの名無しさん:2005/03/31(木) 00:34:51
何を唐突に意味不明なことをほざいてるのか
944デフォルトの名無しさん:2005/03/31(木) 00:37:01
>>941のサイトで出てる内容を受けてってことでない?
まぁ、現在の状況は俺もわかんないけど。
945デフォルトの名無しさん:2005/04/07(木) 07:29:05
mingwPORT
バイナリリリースから patch+make(install) 形式になったね。
今後もこの形で行くのかな・・?
946デフォルトの名無しさん:2005/04/12(火) 09:54:55
MinGW Developer Studio 復活してます
http://parinyasoft.com/
947デフォルトの名無しさん:2005/04/12(火) 10:13:37
ドメインが更新忘れて別の人にとられちゃったそうだ。wxのMLで言ってた。
948デフォルトの名無しさん:2005/04/22(金) 09:59:45
すみませんです、ここの板で聞くのが適切かどうか難しいですが質問させてください。
FirebirdってDBのユーザ定義関数のDLLをコンパイルしようと思っているのですが、以下のエラーが発生しています。
○エラー発生箇所
ibase.hの
void ISC_EXPORT isc_encode_date( void *,ISC_QUAD *);

undefined reference to `isc_encode_date@8'
という感じに文字化けしている。

環境は、以下の通りです。
ttp://www1.cncm.ne.jp/~s_keishi/dev-cpp/install/mingw-install.html
を参考にMinGWの日本語環境構築。

開発環境として、Eclipse CDTを使用。

ttp://www.hitwareland.jp/products/hitudf/download.html
このサイトにあるソースをコンパイル使用とした際にエラー発生(もともと、VC用のソース)

これ以外で、必要な情報がありましたら再度書込みます。

Cを使うのは久々+MinGWの使用は初めてなのでおかしなことをやっているかもしれませんがよろしければ
解決方法のご教授をして頂ければ幸いです。
949デフォルトの名無しさん:2005/04/22(金) 12:52:14
> undefined reference to `isc_encode_date@8'
> という感じに文字化けしている。
文字化けって @8 のことか? それは文字化けじゃあ無いぞ。
エラーメッセージの内容は訳せば多分、分かるかと。
950デフォルトの名無しさん:2005/04/24(日) 13:25:20
今だ!950ゲトー!
951デフォルトの名無しさん:2005/04/24(日) 13:26:19
mingwのC++のテンプレートはうまく動くのでしょうか
ライブラリが不安です
952デフォルトの名無しさん:2005/04/24(日) 13:34:22
MinGWでmingのCVSから持ってきたコードのコンパイルが通らないのはなぜなのですか?

http://ming.sourceforge.net/
953デフォルトの名無しさん:2005/04/28(木) 11:22:28
PEのDOSスタブを入れ替えたいのですが、MinGWではどのようにすればいいのでしょうか?
VC++の/stub:のような機能です。
954デフォルトの名無しさん:2005/04/28(木) 13:00:17
MinGWでgcc4.0.0はまだかー
955デフォルトの名無しさん:2005/04/30(土) 01:23:58
>>954
なんか読んでたら、安定するまで公式バイナリは出さないとかなんとか。
誰かMingGWでビルドに成功した奴いませんか−。
956デフォルトの名無しさん:2005/04/30(土) 03:05:42
>>955
そうか。気長に待つか〜。情報サンクス。
957デフォルトの名無しさん:2005/04/30(土) 08:36:24
>>955
ビルド自体はすんなり成功。
なぜかコンパイラドライバのDオプション(マクロ定義するやつ)が効かなかったり、
適切なincludeディレクトリを探してくれない。
いちいちIオプションで指定しないといけない状態。

オプションなしでconfigureすると、c:\Mingwでなくc:\msys\1.0の方にインストールしたりするからそのへんも注意。
いろいろ模索してるけど、やっぱ公式でるまでまつのが無難じゃねーの?
958デフォルトの名無しさん:2005/04/30(土) 08:43:20
>>848
gccを使うからといってリンカやライブラリアンがGNUのものとは限らない環境もあるんだよ。
そのへんの差をなんとか吸収してる分だけマシなんだ。
本当の混沌を見たことがない幸せをかみしめろ。
959957:2005/04/30(土) 11:17:18
Dドライブにインストールしてたんだが、Cドライブに変更したら問題なくなった。
俺の場合、別のマシンでコンパイルしたバイナリを持ってきたりしてるので
configure時の環境と不整合があるのかもしれない。
結局のところ、普通にconfigureとmakeでビルドできる。
普通の手順なのであえて書く必要があるとも思わんが、
MinGW上でのノウハウがあるなら指摘してもらえればありがたい。

 ・MinGWのインストール先はc:\mingwが無難。(デフォルトなので普通は気にしない)
 ・c:\mingwが/mingwにマウントされてることを念のため確認。(デフォルトではされてるので普通は気にしない)
 ・NULを/dev/nullにマウントしておいた方がいいっぽい。
 ・ソースを展開。tar xvjf gcc-4.0.0.tar.bz2
 ・適当なビルド用ディレクトリ作成。 mkdir gcc-4.0.0-build
 ・ビルド用ディレクトリに入る。cd gcc-4.0.0-build
 ・../gcc-4.0.0/configure --prefix=/mingw
 ・make
 ・libiconv-2.dllを入れておく。(これが無いとmake installの時にメッセージボックスが出てウザい)
 ・make install
960デフォルトの名無しさん:2005/05/01(日) 17:21:46
>>959
俺もインストールしてみた。

・/mingw 以下に混ぜるとアンインストール時とかに面倒なんで、
別途 /home/mingw 以下に入れる
・標準の gcc はそのままにしておきたいので、gcc-4/g++-4
という名前にしとく
・C++ TR1 で遊ぶのが目的なんで c,c++ だけ

あとは現状の gcc -v の結果から適当に configure option をパクって
こんな感じ。

tar xjvf gcc-core-4.0.0.tar.bz2
tar xjvf gcc-g++-4.0.0.tar.bz2
mkdir gcc-build && cd gcc-build
../gcc-4.0.0/configure --prefix=/home/mingw \
--program-suffix=-4 --enable-languages=c,c++ \
--disable-shared --enable-threads --disable-nls \
--without-x --disable-win32-registry
make bootstrap-lean
make install

一点だけハマったのが、/usr/include にシステムヘッダが無い、
と言われて stage1 のビルド中に止まっちゃう件。
なぜか --includedir や --oldincludedir で別の場所指定しても
見てくれないので、C:\MinGW\include を /usr/include にマウント
したら通った。
961デフォルトの名無しさん:2005/05/02(月) 08:14:40
CygwinでMinGWコンパイラ作ろうとした。

checking for library containing strerror... configure: error: Link tests are not
allowed after GCC_NO_EXECUTABLES.
make: *** [configure-target-libiberty] Error 1

…orz
962961:2005/05/02(月) 11:11:45
んでもってMSYSでビルドしようとするとstage1のgnatbind.exeが壊れた状態で作られる…orz
963デフォルトの名無しさん:2005/05/02(月) 11:37:56
>>961
それはあなたが糞だからです。
964デフォルトの名無しさん:2005/05/02(月) 13:17:30
http://www.mingw.org/MinGWiki/index.php/TheNextReleaseですとさ

>>963
まともにビルドできたの、くれ。
--enable-languageは全言語で。
965デフォルトの名無しさん:2005/05/02(月) 21:12:05
> [Mingw-users] Snapshot: mingw-4.0.0.exe
File: http://prdownloads.sf.net/mingw/MinGW-4.0.0.exe?download
966デフォルトの名無しさん:2005/05/03(火) 12:14:32
gcc-4.0.0.tar.bz2 ビルドできた。50分くらい
混ぜると面倒そうなので install してないw。release が出てからでいいや
967デフォルトの名無しさん:2005/05/03(火) 16:45:32
新しいインストーラって、ネットインストーラなんだね。
これで自前の簡易インストールスクリプトともおさらば出来そうな予感。
968デフォルトの名無しさん:2005/05/11(水) 02:28:27
>>967
MinGW4.0.0Alphaをインストールしてみたけど、なぜかgcc3.4.2が
インストールされてしまう。少し待ってろって意味かな。
969デフォルトの名無しさん
>>968
>>955
gcc 4.0 自体、これからチューニングするような状態だから、
気長に待つしか無いのでは。

# 暫くは gcc 4 は様子見だな。