のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,654,695人
昨日:no data人
今日:
最近の注目
人気の最安値情報

元スレCygwin + MinGW + GCC 相談室 Part 5

gcc覧 / PC版 /
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

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 = :

はい


←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について