元スレCygwin + MinGW + GCC 相談室 Part 5
gcc覧 / PC版 /みんなの評価 :
255 = :
TDMのホームページ検索しても>>248が出るようになってるけど
リニューアルしたの?
もしかして>>248が正式版?
256 = :
俺はオンデマンドインストールした
その方がアンインストールも楽だしね
257 = :
漏れはOFFラインPCだからバージョンアップを調べるボタンをオフにしてインストールするんだ。
259 = :
色々あって分かり難いな。
260 = :
mingw で作成したアプリケーションのエントリーポイントを WinMain にするには、どうすればいいのでしょうか?
262 = :
Mingwて、どれ入れたらいいの
263 = :
それを自分で判断できない程度に素人なのであれば公式の current を。
264 = :
質問を変えます。mingw でコンパイル・リンクしたコードを調べてみると、
GDI32/KERNEL32/USER32 のほかに, MSVCRT を呼び出しているようですが、
MSVCRT の呼び出しをやめるようにコンパイルすることはできるでしょうか?
GENERIC に手を加える必要があることはわかりましたが、そうしてもなおかつ MSVCRT を呼び出してしまいます。
265 = :
>>264
spec をいじる方法。
http://d.hatena.ne.jp/y2q_actionman/20070614/p1
だが、 mingw gcc で普通に作られる exe は
随所で msvcrt の機能に依存しているので、
単にリンクを避けただけでは駄目だと思う。
同等の機能をもったランタイムを用意するか、
依存を完全に避けるコードにするか。
あえて msvcrt をさける理由は何?
266 = :
>>265
VC に依存するコードはつくりたくない、と考えただけなんです。
267 = :
>>266
msvcrt はもはや Windows の一部。
268 = :
あと、borland bcc32 では msvcrt をインポートしないようですね。
271 = :
bcc32 だったら win32api だけで書けば、>>266 は実現できるのですが、おなじソースを mingw でコンパイルすると、msvcrt をインポートするコードになるのです。
272 = :
-Wl,-e,WinMain
でいいんじゃねえの
>>268
自前のランタイムリンクしてんじゃん
274 = :
>>272
スタティックリンクしているのは別に構わないのですが、環境に依存する dll を呼び出すのは避けたい、と。
bcc は自前のランタイムをインポートしていません。
278 = :
MinGWとはつまり、コンパイラにGCCを使い、glibcの代わりにmsvcrtを使う開発環境だというのに
その根本で有るmsvcrtを使わないと言うなら、MinGWを使うべきでない
Win9x時代ならともかく、いまどきmsvcrtが使えない環境はない
279 = :
そうなんですね。特定のランタイムdll に依存していない処理系もあるので、ちょっとこだわってしまいました。
ご意見ありがとうございました。
280 = :
つーかMSVCRT.DLLはOSの一部なんだが
むしろ最近のMSVCはそれを利用することはなかったりする。
逆に、最近目にすることができるWindows OSで MSVCRT.DLL を含んでない奴を教えて欲しいくらいだ。
281 = :
すみません、すごいこと聞きますが
MSVCRT.DLLのCRTってなんなんですか?
あと、MinGWでwindowsのドライバの作成(WDKソースのコンピル)できますか
282 = :
>>281
C ランタイム ライブラリ
間違ってもブラウン管のことではない。
283 = :
MinGWで下記のソース(test1.c)をコンパイルし、
#include <stdio.h>
int main(void) {
int i;
for (i=0 ; i<100000; i++) printf("a");
return 0;
}
a.exe > hoge.txt を実行します。
このとき gcc test1.c でコンパイルした実行ファイルは一瞬で実行できるのですが(体感0.1秒?)、
gcc -ansi test1.c でコンパイルした実行ファイルは8秒ほど時間がかかります。
ansiオプションは切りたくないのですが、実行ファイルが遅くなるのは嫌です。
何かいい方法はありませんか?
284 = :
バファリングモードが変わるのか?
285 = :
シグナルを受信するプログラムを作ったのですがうまくいきません
以下のプログラムに kill 3460 ALRM としても
$ ./target.exe
ZzzZzzZzzZzzZzzZzzZzzZzzZzz[1] 3460 terminated ./target.exe
となってしまいます
bool loop = true;
void trap(int no)
{
std::cout << "tarp!!" << std::endl;
loop = false;
}
int main(int ac, char** av)
{
struct sigaction sa = {0};
sa.sa_handler = trap;
sa.sa_flags |= SA_RESTART;
if(sigaction(SIGALRM, &sa, NULL) != 0) {
std::cerr << "sigaction error" << std::endl;
return 1;
}
for(;loop;) {
std::cout << "Zzz" << std::flush;
sleep(1);
}
std::cout << std::endl << "Shhhhhhhhhhhhhhhhhhhhhhhhhh" << std::endl;
return 0;
}
286 = :
MS VC RT
マイクロソフト visualC++ ランタイム
287 = :
ソースがマイクロソフトに依存しなけばいいからMINGWつかうんだよな。
288 = :
tarp!! に目が釘付け。
289 = :
>>282, >>286
おーーーーーっ、どうも
MS VisualC++ RunTime なんですか
290 = :
教えないよ
291 = :
これができないです
operator errorがでます
無理ですか?
matrix1*=matrix2
292 = :
>>291
もっとくわしく
293 = :
エスパー求む!
294 = :
Visual C++ではD3DXMATRIXの掛け算ができたのに、
MinGWではoperator errorがでてできなっかったということです
まあD3DXMatrixMultiplyを使えばいいだけですが
295 = :
>>291の調子でプログラムを書かれたらコンパイラも何していいかわからんわなw
296 = :
>>291
演算子のオーバーロードが書かれたヘッダファイルを読み込んでないだけだろう
297 = :
エスパー来た
299 = :
はい
みんなの評価 :
類似してるかもしれないスレッド
- 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 4 (1001) - [97%] - 2010/3/23 18:31 ☆
- Cygwin + MinGW + GCC 相談室 Part 3 (1001) - [97%] - 2008/9/12 0:04 ★
- 【激遅】AppleGCC【絶望】 (111) - [1%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について