1 名前:デフォルトの名無しさん mailto:sage [2007/10/13(土) 00:07:39 ] 史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。 GNU本家のGCCページ gcc.gnu.org/ Binutils - Collection of binary utilities ←これも必要だぞ。 www.gnu.org/directory/GNU/binutils.html GNU Binutils sources.redhat.com/binutils/ GCC online documentation gcc.gnu.org/onlinedocs/ Installing GCC gcc.gnu.org/install/ GCC Timeline gcc.gnu.org/releases.html#timeline Calendar gcc.gnu.org/develop.html#timeline 前スレ GCCについて part7 pc11.2ch.net/test/read.cgi/tech/1145357824/l50
374 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 13:25:40 ] 実行時だとみれるような機能があったような?
375 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 13:35:46 ] >>373 記録させることはできないが、-finstrument-functions で hook させることはできる。 ググればいろいろ出てくるが、 www.ibm.com/developerworks/jp/linux/library/l-graphvis/index.html ここがわかりやすいな。
376 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 13:56:20 ] >>375 なにこれー!今日ほど2chが役に立った日はないわ。ちょーさんくすこ。
377 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 14:23:08 ] >>371 --enable-libstdcxx-pch build pre-compiled libstdc++ headers [default=$is_hosted]
378 名前:371 mailto:sage [2008/04/15(火) 21:11:44 ] >>372 ,377 ありがとうございます。 --disable-libstdcxx-pchを入れて試してみます。
379 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 20:53:48 ] gccで、クロージャとは言わないまでも、 ユーザーが作った関数へ、後から動的に値を埋め込む方法はありませんか? 言語処理系のコールバックの実装で、 その関数が呼び出された時に、その値を参照したいのです。 グローバル変数や、アセンブラを使えば作れるのですが、 できれば使わずに済ませたいので。
380 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:00:19 ] 任意のパラメータを受け取れる void* 型の引数を作るといいよ。
381 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:00:26 ] つ 関数へのポインタ
382 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:28:31 ] #include </dev/tty>
383 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:30:04 ] >>380-381 いやそうじゃなくて。 言い方を変えれば、関数とユーザー値を組み合わせて 新しい関数を作れるかって事です。 その新しい関数は、呼び出し時に なんらかの方法でユーザー値を受け取れる事。
384 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:31:21 ] また、誰が呼び出すかは判らないので、 ユーザー値をその関数の引数に入れる事はできません。
385 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:39:56 ] g() { return closure_ref(0) + 1; } f(pg) { return ((int (*)())pg)(); } main() { printf("%d\n", f(make_closure(g, 1))); return 0; } この場合2が表示される。 make_closureとclosure_refを作れるか fはstdlib.hのbsearchやqsortのように、 任意のライブラリの可能性もある。 (当然gはその型に合った関数型になる)
386 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 21:55:20 ] C++ならできるからg++使えってのはあり? #include <boost/tr1/functional.hpp> #include <boost/utility/result_of.hpp> #include <cstdio> template<typename T> T g(T x) { return x + 1; } template<typename T> typename boost::result_of<T ()>::type f(T g) { return g(); } int main() { std::printf("%d\n", f(std::tr1::bind(g<int>, 1))); }
387 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:02:29 ] >>386 C++の型拡張による物は呼び出し側(f相当)を限定してしまうので不可です。 あくまで汎用的なコールバックに使える事が前提なので。 一応nested functionで限定的にできる事は判っています。
388 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:08:04 ] >>387 その限定というのは、boost::function (もしくはstd::tr1::function)で何とかなるものではない?
389 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 22:16:17 ] >>388 boost::functionでできそうです。 ありがとうございます。
390 名前:デフォルトの名無しさん mailto:sage [2008/04/25(金) 13:47:24 ] GCC4で、できなくなった気もするが つ ttp://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Nested-Functions.html
391 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 12:17:28 ] Apache C++ Standard Library 4.2.1 released mail-archives.apache.org/mod_mbox/www-announce/200805.mbox/%3c20080502200946.T96786@minotaur.apache.org%3e
392 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 07:48:27 ] ttp://gcc.gnu.org/ml/gcc/2008-05/msg00216.html > GCC 4.2.4 is now available to download from gcc.gnu.org and ftp.gnu.org
393 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:54:03 ] たまに聞く、GCCは4シリーズより3.4とかの方がアプリなどの動きが早いって聞いて入れてみた。 コンパイルが出来ない物が出てきたから一時は諦めたけど、最近C++関連は(sijc,glibmm,cairomm,gtkmmなど) 全部同じコンパイラーじゃないとうまく動かないというのを知ってその辺全部3.4でコンパイル。 使用してみた感じ、コンパイル(-O2のみ)した各アプリの動きが良い。カーネル2.6.25もGCC3.4でコンパイル。 立ち上がりとかも早くなりました。dmesgの左に出る起動時の細かい時間とかも早くなっているのが解る。 GCCの4シリーズなどは、その新機能を生かすソースを書いてあげないとあまり意味が無いんでしょうか・・・ 快適なのでとりあえずしばらく3.4メインにしようかな。
394 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:53:22 ] >>393 気のせいですよ。
395 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:50:22 ] このスレ見ている人がいるなんてwww 全米も感動(TT)
396 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:26:30 ] 違いが気になるなら、アセンブリ出力を見比べてみればいい。
397 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 21:59:58 ] アセンブリなんか見るよりアプリケーションベンチ取ればいい。 アセンブリの差はCPU側の処理方法によって優劣付けにくいから。 それにしてもgcc替えてまでやっての感想が「気がします」とは だんだんオーヲタみたいになってきたな。電源ケーブルを純銅にしたら 電気の流れが速くなってキビキビ動作になりました!と変わらん。
398 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:49:16 ] >>393 気になるなら調べてください。 調べる気がないなら気にしない方がいいです。
399 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:14:13 ] >>393 自前コンパイルなら機種依存オプションまで付けろ、と。
400 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:30:40 ] >>397 電源ケーブルは材質よりインピーダンスとアース極性チェックが大事。 信号線の方は俺は純銀ケーブルにしてる。無酸素銅とどっちが良いかはなんとも言えんが。
401 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:38:43 ] >>400 うん。そういう風にわかってこだわるのはいいんだ。 >>393 は試したって-O2だけかよ、って小一時間問い詰めたい。 実際のところ、カーネルとかマルチメディア系とかはコンパイラの癖にまで 依存したギリギリのチューニングが施されている場合があるから、 コンパイラの能力を評価するにはフェアじゃない。
402 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:02:12 ] x264dev.multimedia.cx/?p=32
403 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:45:06 ] そういや昔見たのは、 groups.google.com/group/comp.lang.forth/browse_frm/thread/545177ea53944038/eebaa14010b86c61?hl=en#eebaa14010b86c61 gccは2.95が最速、あとは遅くなるだけだぜ、みたいな話
404 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:00:30 ] 毎回gdb立ち上げて特定のメソッドにブレーク張ってとかの作業を 自動化してくれる方法はないでしょうか?
405 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:07:00 ] >>404 gdbの起動時にスクリプトを実行する機能があるよ。 詳細はmanでも読んで。
406 名前:404 mailto:sage [2008/06/01(日) 03:14:36 ] >>405 さんありがとうございます。 .gdbinitというファイルをカレントディレクトリに用意して 以下のように書いてうまくいきました。 exec-file ./test.exe symbol-file ./test.exe r b main
407 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 02:34:00 ] gccでコンパイルするときに コンパイルしたソースファイルの名前を、 ディレクトリも含んだ状態でオブジェクトファイルに格納する らしいのですが、 どこに書かれているのでしょうか?
408 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:35:54 ] $ nm -a foo.o
409 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:34:16 ] June 6, 2008 GCC 4.3.1 has been released.
410 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:32:10 ] GCCで音階のプログラムを組もうとおもっています。 波数とパルスの詳細が知りたいので、教えてください。 4オクターブを想定しています。
411 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:47:42 ] >>410 GCC関係あるのか? どういうプラットフォームで何からどうやって音を出そうというのかを はっきりさせて下のスレあたりで聞いたほうがいいように思う。 サウンドプログラミング4 pc11.2ch.net/test/read.cgi/tech/1185340076/
412 名前:デフォルトの名無しさん [2008/06/11(水) 12:28:28 ] GCCでプリコンパイル済みヘッダ使うとき、元のヘッダ*.hと同じディレクトリに *.h.gchが作られますけど、release用とdebug用の二つのプリコンパイル済みヘッダを 使いわけたいときなんかは、皆さんどのようにしてますか?
413 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:48:52 ] *.h 自体を release や debug 用ディレクトリに コピーしてから使ってるなぁ。
414 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:58:59 ] ディレクトリ指定してそこに作らせる。
415 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 16:02:27 ] gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html によると、*.h.gch というディレクトリを作って、その中にそれぞれ用のプリコンパイルヘッダを置いておくといいらしい・・・
416 名前:412 mailto:sage [2008/06/11(水) 22:22:02 ] >>415 さんのやり方で無事できました。皆さんありがとうございます。 *.h.gchディレクトリ以下で、コンパイルオプションが同じものを勝手に使ってくれるようです。 プリコンパイル済みヘッダのファイル名はなんでもいいようです。
417 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:28:44 ] 長い間VC6、VC8(MFC)で実装をやってました この度、新しいプロジェクトでlinuxでC++の実装を担当することになったのですが VisualStudioの生ぬるい環境に、長い間どっぷり浸っていたせいで いまいち、調子がよくありません gcc(g++)の環境で、VisualStudioのようなデバッガーって無いのでしょうか?
418 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:14:02 ] EclipseもC++に対応してたような
419 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:47:48 ] >>418 Thx Eclipseをインストールして、続けてC++の開発環境もインストールしました 実装に専念できそうです
420 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:03:30 ] Eclipse既にインスコしたようだが、Dev-c++もお奨め
421 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:25:52 ] eclipse/cdtかkdevelopだな
422 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:46:17 ] Emacs以上の環境は存在しない
423 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 01:29:33 ] これがゆとり世代か・・・
424 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:30:54 ] emacsはもう死んだよ
425 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 09:16:05 ] Emacs is dead. The future is notepad.
426 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:48:10 ] >>424 ん?xyzzy が便利なんですが。CL だし。
427 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:50:55 ] emacs憶えたら便利なんだろうって何となく思うけど、 憶えるための最初の一歩を踏み出す気が起きない。
428 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 14:49:38 ] 以下のような関数をgccでビルドするとき、 最適化オプションを何もつけていないのに return -1;の部分が最適化されて消えてしまうことってありますか? int func(void) { // この関数が呼ばれた時点でバグなのでデバッグ時は無条件にアサートさせる。 assert(false); // リリース時に万が一呼ばれたときはエラー値を戻す。 return -1; }
429 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 14:51:50 ] gcc -S でソース嫁
430 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:07:12 ] >>428 gccは最適化ナシでも簡単なフロー解析(この場合、あからさまに到達不能なブロック)はやっている。 assert() 内部では __attribute__((noreturn)) なファンクションが呼ばれている。 あとはわかるな?
431 名前:428 mailto:sage [2008/06/15(日) 15:55:11 ] >>429 ,430 どうもです。 以下のソースを gcc -S -o test.s test.c と gcc -S -DNDEBUG -o test2.s test.c とすると挙動がわかりました。 ありがとうございました。 #include <assert.h> void f(void) { assert(0); int i = 0; ++i; }
432 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:00:22 ] 複数の-g系オプションを並べた場合は 後ろの方が強いのですか? gcc -ggdb -gxxx
433 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:12:53 ] gcc 4.3,ひどいな…
434 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:56:53 ] いつものごとく4.5くらいまで進めば安定するんでないかい。 ということで3.4使いつづけとります。
435 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 00:39:25 ] 俺にとって、4.3はC++0xのためだけに存在しているようなもの。
436 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:02:01 ] openmpのこともたまには思い出して上げてください
437 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:09:27 ] >>436 思い出してもageません?
438 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 13:22:48 ] Converting GCC to C++ lwn.net/Articles/286539/
439 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 20:38:48 ] >>438 これはつまり gcc cxx.cpp ができるようにするからくりというわけ?
440 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 21:36:18 ] GCC を C++ に移植したいらしい。
441 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 21:51:26 ] The FSF is not writing the code. にワロタ
442 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 22:14:20 ] >>440 そっか逆か。ありがと。
443 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:08:06 ] もういっそJavaでもいいんじゃね派が登場して 混沌としてほしい
444 名前:デフォルトの名無しさん [2008/06/20(金) 08:48:26 ] なんてアグレッシブな!と思ったけどブランチ作っただけでコードはまだか。 内部のモジュール化が進むといいなあ。
445 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 01:07:28 ] JavaでいいならCOINS
446 名前:デフォルトの名無しさん mailto:sage [2008/06/29(日) 23:26:34 ] GCC 3.4 x86_64 で -mno-sse が効かないんですが、理由が分かる人はいますか? gcc -S -fverbose-asm の出力を見ると、-mno-sse を付けているにも関わらず -msse が有効になっています 実際、アセンブリを見ても SSE 系の命令が出力されています
447 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 01:01:06 ] >>446 -mfpmath=387
448 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 01:56:55 ] >>447 それを付けても駄目みたいです また GCC 4 系ではそれを付けなくても -mno-sse が有効になります
449 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 02:01:23 ] >>446 >GCC 3.4 x86_64 で -mno-sse が効かないんですが、理由が分かる人はいますか? 横な質問なんですけどx86_64でSSEの無いCPUって何ですか?
450 名前:デフォルトの名無しさん mailto:sage [2008/06/30(月) 02:28:49 ] >>449 あまり詳しいことは書けないけど XMM レジスタを使わないことが前提のアセンブリコードや CPU エミュレータがあるので C ソースファイルをコンパイルするときに SSE コードを生成して欲しくない あるいは浮動小数点演算自体の使用を禁止する運用も可能だけど その場合、浮動小数点演算を使用しているソースをコンパイルエラーで弾くくらいはする必要がある
451 名前:デフォルトの名無しさん mailto:sage [2008/07/01(火) 16:46:13 ] -mno-sse2 なんてオプションはなかったよなw
452 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 00:25:02 ] >>451 GCC 4 なら -mno-sse だけで -mno-sse2 -mno-sse3 まで付きますし GCC 3.4 はそれらを併用しても駄目ですね
453 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 00:51:05 ] gccのことは知らないが、 windowsだとlong modeでFDP/MMX系のレジスタは一切使わない。 スタックフレームもレジスタ優先でほとんど使わないし、 そのとき実数データの受け渡しにXMMレジスタ使ってる。 XMM使うなというのが無理な話状態なのです。
454 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 00:18:00 ] すみません、gdbの質問をしたいのですがここでもいいですか? gdbの中でグローバル変数の一覧を取得(表示)する方法はありますかね? ローカル変数に関してはinfo localsがありますが。
455 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 01:05:59 ] shell から nm 呼ぶってのは無し?
456 名前:デフォルトの名無しさん mailto:sage [2008/07/07(月) 02:39:05 ] info variables
457 名前:454 mailto:sage [2008/07/07(月) 09:49:28 ] >>455 えっとグローバルなbssとdataのシンボルを見ろということですかね? やってみたんですが、自分がいじってるプログラムではどうもconstな変数が textにいるように見えるんですが... ldの挙動をコントロールしているようで。 デバッグのときだけ「普通」にリンクするというのはありかもしれませんが... >>456 やってみるとなんかエントリーが重複して見えるんですが、そんなもんですかね。 ちなみにinfo localsと違って値を表示してくれたりはしないんですね。
458 名前:デフォルトの名無しさん mailto:sega [2008/07/12(土) 17:05:47 ] コンパイルをした日時を埋め込む・取り出す方法ってありますか? 今はmake時に引数で`date`なんかを渡す方法を使ってるけど そのdefineを使うソースがコンパイルの対象になっていない限り 反映されないので、いまいち使い勝手がわるいんです
459 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 17:12:50 ] シェルで、日時を何かのファイルに書き込んで、 それからコンパイル。
460 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 17:15:10 ] そのソースを毎回必ずコンパイルするようmakefileを書けばいいのだと思うんだけど
461 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 17:26:04 ] >>460 その方向でやってみます となると、次はMakefileスレだな
462 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 17:43:50 ] __DATE__ とかないんだっけ フォーマット考えると自分でやったがいいか
463 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 18:08:17 ] all: hoge ・・・・・・・・ hoge: 絶対コンパイルしたいファイルをコンパイル でいいんじゃね?
464 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 20:39:26 ] GNUmakeなら.PHONYとか
465 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 21:02:58 ] ファイルの一番後ろに日付書いといたらいいんじゃないの
466 名前:458 mailto:sage [2008/07/12(土) 21:20:32 ] やっぱ>>460 の方法はやめました コンパイルする必要がないときでもmake叩くと必ずコンパイルされてしまう というのは俺の精神衛生上よくないことがわかりました
467 名前:デフォルトの名無しさん mailto:sage [2008/07/12(土) 22:36:37 ] コンパイルした実行ファイルの日付をチェックすればええんちゃう?
468 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 00:51:20 ] 埋め込むんじゃなく、コンパイルするたびに バイナリのMD5ハッシュと時刻をログファイルに記録すればいいんじゃね。
469 名前:デフォルトの名無しさん [2008/07/13(日) 01:02:01 ] 質問です。 インストールしたてのcygwinにgcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) がインストールされているので、gccを最新版の4.3.1にしようと思ったのですが。 configure --prefix=/usr/local とし、 make したら /home/***/gcc-4.3.1/i686-pc-cygwin/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp:108: error: invalid use of incomplete type 'class __gnu_pbds::detail::thin_heap_<Value_Type, Cmp_Fn, Allocator>' のところで詰まってビルドが止まってしまいます。 この原因についてご存知の方いらっしゃいませんか?
470 名前:458 mailto:sage [2008/07/13(日) 01:33:13 ] >>468 それも考えたのですが、なんか面倒なので リンカに頑張ってもらう方法を調べることにします
471 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:04:25 ] >>466 それはmakefileの書き方でいくらでも回避できるんじゃね? 最後のlinkする所のtargetの中で依存関係無しにちょろっとccしてしまえばいいんじゃ
472 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 10:07:05 ] cat `date` >> hogehoge とかやって、 strings -a hogehoge とかやると、読めなくもない。
473 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 10:09:39 ] stringsを使わなくても、 tail -c [文字数] hogehoge でもいける。 後から偽の時刻を埋め込まれたら知らんけど。
474 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 10:36:17 ] いずれにしろ -D で渡すのも気に入らないとか、 コンパイラのほうで実現するのは気持ち悪いとか言ってるから、 スクリプトとか他のもので好きなように実現するのがいいんじゃないのか?