私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレCygwin + MinGW + GCC 相談室 Part 4
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
Browse TDM's GCC/MinGW32 Builds Files on SourceForge.net
http://sourceforge.net/projects/tdm-gcc/files/
ここの
1.902.0
tdm-mingw-1.902.0-f1.exe
tdm-mingw-1.902.0-f2.exe
tdm-mingw-1.902.0-webdl.exe
これら3リリースの違いを教えていただけますでしょうか?
http://sourceforge.net/projects/tdm-gcc/files/
ここの
1.902.0
tdm-mingw-1.902.0-f1.exe
tdm-mingw-1.902.0-f2.exe
tdm-mingw-1.902.0-webdl.exe
これら3リリースの違いを教えていただけますでしょうか?
>>553
As a general rule, you should choose the default SJLJ packages,
unless you know you need faster exception handling and can guarantee
you'll never need to unwind through non-DW2-compiled stack frames
(such as a Windows callback). If you chose the DW2 packages,
consider removing the "-dw2" suffix from the program names.
See README-gcc-tdm.txt, included in the core package,
for further notes on this topic.
つまりSJLJ(f1)を優先的に使えと
Dwarf-2(f2)を使うのは、速い例外処理と、DW2でコンパイルされた
のではないスタックフレーム(Windowsのコールバックのような)を解放する
必要が無い事を保証できる
もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を
考慮しなさい
つまりコールバックを多用してまたより速い例外処理が必要ならf2を、
そうでなければまずf1を選べという事でしょう
webdlはオンデマンドインストールで、画面から何をダウンロードして
インストールしたりアンインストールするか決めれるというだけのもの
でも便利
最終的にはどうすればいいかというと上の注意に従いながらwebdlで
インストールすればいいという事になる
As a general rule, you should choose the default SJLJ packages,
unless you know you need faster exception handling and can guarantee
you'll never need to unwind through non-DW2-compiled stack frames
(such as a Windows callback). If you chose the DW2 packages,
consider removing the "-dw2" suffix from the program names.
See README-gcc-tdm.txt, included in the core package,
for further notes on this topic.
つまりSJLJ(f1)を優先的に使えと
Dwarf-2(f2)を使うのは、速い例外処理と、DW2でコンパイルされた
のではないスタックフレーム(Windowsのコールバックのような)を解放する
必要が無い事を保証できる
もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を
考慮しなさい
つまりコールバックを多用してまたより速い例外処理が必要ならf2を、
そうでなければまずf1を選べという事でしょう
webdlはオンデマンドインストールで、画面から何をダウンロードして
インストールしたりアンインストールするか決めれるというだけのもの
でも便利
最終的にはどうすればいいかというと上の注意に従いながらwebdlで
インストールすればいいという事になる
あ、訳がおかしいな
×もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を考慮しなさい
○もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除するかどうかよく考えなさい
×もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を考慮しなさい
○もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除するかどうかよく考えなさい
じゃあLinuxとは違うじゃねーか。
Linuxは何事も無かったように、どこかの知らないプロセスを落として
メモリを確保するんだから。
Linuxは何事も無かったように、どこかの知らないプロセスを落として
メモリを確保するんだから。
Cygwinの話じゃなくてMingwもかい。
Mingwだったら、HeapAllocをそのまま使えば
ちゃんとNULL返してくれるのに。
バカみたい。
Mingwだったら、HeapAllocをそのまま使えば
ちゃんとNULL返してくれるのに。
バカみたい。
>>559
例えば、↓のようなコードでは全然落ちない(普通にNULLが返る)んだけど
再現するコードを例示してくれ。
まさかとは思うが、newを使っていて
bad_allocをcatchしてないから落ちるってオチじゃないよね。
例えば、↓のようなコードでは全然落ちない(普通にNULLが返る)んだけど
再現するコードを例示してくれ。
まさかとは思うが、newを使っていて
bad_allocをcatchしてないから落ちるってオチじゃないよね。
void test(unsigned nmegabytes, std::vector<void *>& saver) {
unsigned alloced = 0;
printf("[%u]MByte\n", nmegabytes);
for (;;) {
void *p = malloc(nmegabytes * 1024 * 1024);
if (!p) {
printf("malloc() returns NULL at allocated %uMB\n", alloced);
break;
}
*(int *)p = 0; // アクセス違反で落ちる?
alloced += nmegabytes;
saver.push_back(p);
}
// clear
for (std::vector<void *>::iterator it = saver.begin(), end = saver.end(); it != end; ++it) {
free(*it);
}
saver.clear();
}
int main() {
std::vector<void *> saver;
saver.reserve(4 * 1024);
test(1, saver);
test(50, saver);
test(500, saver);
}
unsigned alloced = 0;
printf("[%u]MByte\n", nmegabytes);
for (;;) {
void *p = malloc(nmegabytes * 1024 * 1024);
if (!p) {
printf("malloc() returns NULL at allocated %uMB\n", alloced);
break;
}
*(int *)p = 0; // アクセス違反で落ちる?
alloced += nmegabytes;
saver.push_back(p);
}
// clear
for (std::vector<void *>::iterator it = saver.begin(), end = saver.end(); it != end; ++it) {
free(*it);
}
saver.clear();
}
int main() {
std::vector<void *> saver;
saver.reserve(4 * 1024);
test(1, saver);
test(50, saver);
test(500, saver);
}
>>563
C++かとおもいきや、malloc使ってるのかよw
えっと、とりあえずそんなに領域確保出来たっけ。
ってことで、
if (!p) {
printf("malloc() returns NULL at allocated %uMB\n", alloced);
break;
}
を
if (!p) {
printf("malloc() returns NULL at allocated %uMB\n", alloced);
perror("error");
exit(EXIT_FAILURE);
break;
}
と書き換えてみれば、何が原因で落ちたかわかるよ。
あと、pが確保出来てないのに、そこでbreak;しちゃうと、そりゃその後でアクセス違反で落ちるよw
C++かとおもいきや、malloc使ってるのかよw
えっと、とりあえずそんなに領域確保出来たっけ。
ってことで、
if (!p) {
printf("malloc() returns NULL at allocated %uMB\n", alloced);
break;
}
を
if (!p) {
printf("malloc() returns NULL at allocated %uMB\n", alloced);
perror("error");
exit(EXIT_FAILURE);
break;
}
と書き換えてみれば、何が原因で落ちたかわかるよ。
あと、pが確保出来てないのに、そこでbreak;しちゃうと、そりゃその後でアクセス違反で落ちるよw
>>565-566
同意だがそんなにカリカリすんなよ(´・ω・`)
同意だがそんなにカリカリすんなよ(´・ω・`)
http://www.tdragon.net/recentgcc/
WARNING:
The 4.4.1-tdm-1 release is known to have a bug which causes drastically increased CPU usage in programs compiled with it. You are urged to use a previous release until this bug is fixed.
これが修正されるのはいつですか?
WARNING:
The 4.4.1-tdm-1 release is known to have a bug which causes drastically increased CPU usage in programs compiled with it. You are urged to use a previous release until this bug is fixed.
これが修正されるのはいつですか?
MinGW と Msys を去年の10月ごろ入れて
gcc のバージョンが
gcc version 3.4.5 (mingw-vista special r3)
なんですが
netdb.h sys/socket.h netinet/in.h がインクルードできません
最新版にすればインクルード出来るでしょうか?
Cygwin にしないとダメなんでしょうか?
gcc のバージョンが
gcc version 3.4.5 (mingw-vista special r3)
なんですが
netdb.h sys/socket.h netinet/in.h がインクルードできません
最新版にすればインクルード出来るでしょうか?
Cygwin にしないとダメなんでしょうか?
何か3.4.5 だとSJISもうまくコンパイルできないようなんですが
3.4.2とかを入れないといけないのでしょうか?
3.4.2とかを入れないといけないのでしょうか?
>>577
当然、-finput-charset=cp932とかやってるんだろうね。
当然、-finput-charset=cp932とかやってるんだろうね。
>>578
やっていません。
3.4.5 でも
そのオプションをつければいけるのでしょうか?
今やっているのは取りあえず通らない文字を削っているのです
取りあえず、SJIS はいいとして、インクルードファイルは、3.4.2 とかにしないといけないのでしょうか?
やっていません。
3.4.5 でも
そのオプションをつければいけるのでしょうか?
今やっているのは取りあえず通らない文字を削っているのです
取りあえず、SJIS はいいとして、インクルードファイルは、3.4.2 とかにしないといけないのでしょうか?
>>576
MinGWならwindows APIのソケットを使って下さい。
MinGWならwindows APIのソケットを使って下さい。
4.3.2 にして、色々試していたらコンパイルもリンクも出来ました
皆さん、どうもありがとうございました。
皆さん、どうもありがとうございました。
>>583
vimのソースをダウンロードして解答したら中に
「INSTALL」か「README」っていうファイルがあるはずだからそれを読んでください。
大概、.configure; make; make install とかすることになりそうだけど。
vimのソースをダウンロードして解答したら中に
「INSTALL」か「README」っていうファイルがあるはずだからそれを読んでください。
大概、.configure; make; make install とかすることになりそうだけど。
MinGW+MSYS環境なのですが,yumみたいなのはついていないのでしょうか?
そういう何もかも込み込みの環境を提供しようとするものではない。
基本的には configure と make が動くところまでって感じ。
基本的には configure と make が動くところまでって感じ。
そうなんですね.
じゃあソースおとしてコンパイルしてみます.
最新版のMSYSにはVIMがはいっていないみたいなんですよね
じゃあソースおとしてコンパイルしてみます.
最新版のMSYSにはVIMがはいっていないみたいなんですよね
>>589
一応公式サイトにMSYS用のvimのバイナリっぽいものがあるけど、試しては無い。
一応公式サイトにMSYS用のvimのバイナリっぽいものがあるけど、試しては無い。
あれ?
わざわざ入れたことは無い (だって Emacs 派だから!) はずなんだけど俺の環境には vim は入ってるなぁ。
何かと一緒に入ったんだと思うんだけど、 DTK じゃなかったか。
わざわざ入れたことは無い (だって Emacs 派だから!) はずなんだけど俺の環境には vim は入ってるなぁ。
何かと一緒に入ったんだと思うんだけど、 DTK じゃなかったか。
http://sourceforge.net/projects/mingw/files/
MSYS vimに分離されたようだね
ところで.tar.lzmaファイルってWindowsでは対応ソフト少ないような気がするんだ・・・
お前さんがたはtar使ってるの?
MSYS vimに分離されたようだね
ところで.tar.lzmaファイルってWindowsでは対応ソフト少ないような気がするんだ・・・
お前さんがたはtar使ってるの?
俺んとこのtarも1.13だ
mingw32-gcc-4.4.0が出たときは結局Linuxで展開してからWindowsに持ってきたよ
ちょっと解せないものを感じた
mingw32-gcc-4.4.0が出たときは結局Linuxで展開してからWindowsに持ってきたよ
ちょっと解せないものを感じた
tdmのソースの中のehstatic.patchにこんなことやってるところがあるんだけど
+ HANDLE hmutex = CreateMutexA(0, FALSE, name);
+ if (WaitForSingleObject(hmutex, INFINITE) != WAIT_OBJECT_0)
+ __w32sp_trap();
+ HANDLE hmutex = CreateMutexA(0, FALSE, name);
+ if (WaitForSingleObject(hmutex, INFINITE) != WAIT_OBJECT_0)
+ __w32sp_trap();
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
みんなの評価 : ☆類似してるかもしれないスレッド
- Cygwin + MinGW + GCC 相談室 Part 8 (938) - [97%] - 2022/10/28 8:00
- Cygwin + MinGW + GCC 相談室 Part 7 (996) - [97%] - 2014/9/21 2:15
- Cygwin + MinGW + GCC 相談室 Part 6 (981) - [97%] - 2012/12/30 23:15
- Cygwin + MinGW + GCC 相談室 Part 5 (981) - [97%] - 2011/4/6 2:32
- Cygwin + MinGW + GCC 相談室 Part 3 (1001) - [97%] - 2008/9/12 0:04 ★
- 【激遅】AppleGCC【絶望】 (111) - [1%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について