1 名前:デフォルトの名無しさん [2006/04/18(火) 19:57:04 ] 史上最強かもしれないツール、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
369 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:39:25 ] >>361 Wikipedia日本語版に、GCCはK&R Cで書かれているとあるが、実際のところどうなんだろう?
370 名前:デフォルトの名無しさん mailto:sage 「K&R C」を「Turbo C」とか「MS C」みたいのだと思ってる? [2006/10/16(月) 17:25:14 ] ソース見ればわかるじゃん。
371 名前:デフォルトの名無しさん mailto:sage それはない [2006/10/16(月) 17:33:10 ] どう見てもANSI Cです。(関数宣言のあたり) ってGREPすると__attribute__も少しは見かけるな。
372 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 17:51:02 ] 環境:cygwin+3.4.4-2シリーズ ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-3.4.6/gcc-3.4.6.tar.bz2 www.gnu-pascal.de/alpha/gpc-20060325.tar.bz2 解凍後 ./configure --verbose --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug make CFLAGS='-O' LIBCFLAGS='-g -O2' LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap make install できた。
373 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 21:19:40 ] >>372 乙彼サマですっ(゚Д゚)>ビシッ
374 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 02:55:16 ] 俺もできることはできたんだけど何故かディレクトリ設定がしっちゃかめっちゃかになっていて Cygwinのインストーラーで入れるgccバイナリのように何も考えずに使うことはできない状態。 やっぱりCygwinによくなじむgccはCygwinの中のおっさんにしか作れないのかもしれない。 けどおっさんは例え3.4.4に不具合報告されていようと自分自身がその不具合に遭遇しない限り ビルドする気なさげっぽいんだよな。
375 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 08:34:07 ] 説得する側の説得力と貢献が足りないのでは?
376 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 18:42:18 ] というわけでCygwinからMinGWに鞍替えします。
377 名前:デフォルトの名無しさん [2006/10/18(水) 22:52:49 ] xxx.upken.jp/up/download.php?id=0003e2ab94c1ad3efd7ed5178e4a1b8476494706 ”MinGW用”GCC 3.4.6バイナリ Pass:mingw 有効期限は3日、ダウンロードは5回までです。
378 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 23:18:35 ] 転載要る?
379 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 23:37:12 ] ( ^ω^)
380 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 02:19:58 ] スレの住人数的に5人で十分つーか普通は自分で作れるっしょ。
381 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 18:10:19 ] 自分で作れない奴は使えなくていいんだよ
382 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 18:53:15 ] gccのコンパイルは自分でやったこと無いけど、 某g*cはコンパイルに丸一日かかると聞いたので 時間が惜しい人もいるかなあ、と。
383 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 20:39:49 ] そんなに時間が惜しければ、寝ていたり出かけていたりする間にやらせれば良いだけ。
384 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 21:33:05 ] 自分でやりたくなければ、バイナリが配布されるのを待てばいいじゃない
385 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 21:41:31 ] 半年以上待ってます。
386 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 21:47:36 ] --enable-languages=c,c++ だったらすぐじゃん。 java→SUN使え pascal→でるふぃ使っとけ ada→知らん f77→知らん objc→知らん
387 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:59:57 ] c++を友好にするだけでけっこうかかるぞ。 それにやっぱ今はjavaを有効にしてネイティブコンパイルするのがトレンドじゃないか。
388 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 01:06:15 ] >>387 どうせ不安定
389 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 17:36:58 ] >>388 そこが萌える
390 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 18:22:23 ] >>389 ツンデレ?
391 名前:389 mailto:sage [2006/10/20(金) 18:41:30 ] >>390 今のgcjはツンデレどころかツンツン #とくにWin32環境では…
392 名前:デフォルトの名無しさん [2006/10/23(月) 00:41:56 ] pc8.2ch.net/test/read.cgi/tech/1153583131/l50 停止しました
393 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 07:53:02 ] gccとはちと離れますが、 gasでのIA32のニーモニックやオペランドの表記方法について解説した文書ないですか?
394 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 08:11:31 ] 本でいいならCQ出版のx86アセンブラ入門 Webならググレ
395 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 18:32:24 ] ぐぐってもちゃんとしたのは出てこないな。サワリだけのページならあるけど。
396 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 21:48:43 ] >>393 mysearch.intel.com/corporate/default.aspx?culture=en-US&q=IA-32+Architectures+Software+Developer%27s+Manual www.linux.or.jp/JF/JFdocs/Linux-Assembly-4.html > gasの欠点はgasがAT&T-syntaxを使っていることです。これは > Intel-syntaxと大きく違っています。 DOSユーザーはほとん > どがIntel-syntaxを使っています。 AT&T Assembly Syntax | Sig9 sig9.com/articles/att-syntax がんがれ>>393
397 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 00:52:06 ] >>393 homepage1.nifty.com/herumi/prog/prog14.html www.mars.sannet.ne.jp/sci10/on_gcc_asm.html
398 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 02:04:20 ] >>393 gas付属のinfoは?
399 名前:393 mailto:sage [2006/10/24(火) 04:46:38 ] >>396-397 ありがとうございます。 教えていただいたページを参考になんとかなりそうです。 >>398 私は英語がダメで……というわけでもないんですが 一遍見たのですがgasの文法しか書いてないと思ってしまってました。 ご指摘を受けてもう一度よく見直したらMachine Dependent Features という節があってそこになんか書いてありますね(アセ やっぱ英語ダメなのか。
400 名前:デフォルトの名無しさん [2006/10/25(水) 14:48:44 ]
401 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 14:54:58 ] >>400 ageてまでする話じゃないな
402 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:30:48 ] ftp://gcc.gnu.org/pub/gcc/snapshots/ に 4.3 ができてた。 よく知らないが、そろそろ 4.2 がリリースされるんかな。
403 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 00:34:07 ] へぇ、branch切ったんだ。 gcc.gnu.org/gcc-4.2/changes.html 魅力的な要素があまり無いなぁ。
404 名前:デフォルトの名無しさん mailto:age [2006/10/26(木) 03:15:11 ] >>401
405 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 03:59:43 ] えぇっ、フリーのOpenMPはでかいんじゃないのかいな。 ていうかなんでfastjar消されるの?
406 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 04:44:29 ] 所詮ただのZIPだから。
407 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 15:14:53 ] やっぱそうだったんだorz
408 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 13:28:01 ] >>405 はげどう。 >>403 はこのままだとマルチコア時代を生き抜けないぞ。
409 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 19:20:42 ] ただでさえ4.*はバージョンが古くないと問題ないはずのソースがコンパイルできなかったり まさに発展途上だからなぁ。
410 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 02:50:55 ] 安定してるバージョンはなに?
411 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 07:50:12 ] 3.4.4
412 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 18:15:19 ] 3.4.6が3.*の最終版だがffdshowの改良版がコンパイルできないそうだ。 ffdshowの改良版がまともにコンパイルできるのは4.0.2”だけ”で 4.0.1でも4.0.3以降でもダメらしい。 つまり4.*はもちろん、もう更新されない3.4.6ですら未完成な部分がある。 修正するガッツを持っている人間はネットをググった程度じゃ出てこない。
413 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 18:20:42 ] >>412 ffdshowの改良版とやらの方の不備ではないのか?
414 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 18:21:00 ] >>412 そもそもGCCのコードを弄れる奴が世界に何人いるかだ。
415 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 19:20:10 ] gccのコードほど複雑怪奇なものはないと思うんだが。
416 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 00:59:12 ] >>414 CygwinとMingwの中の人なら平気で弄ってるよな。いや、平気じゃなくて根性かもしれんけど。
417 名前:デフォルトの名無しさん [2006/10/30(月) 12:45:43 ] コンジョだコンジョ
418 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:05:16 ] カスミン懐かしい… って板違いだな
419 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 21:18:28 ] 参考までにffdshowの改良版 svn co https://svn.sourceforge.net/svnroot/ffdshow-tryout ffdshow-tryout 作ってる人たち自身がGCCなら4.0.2じゃないとダメと言ってるからソースに問題はないと思うんだが。 ちなみに3.4.6ではInternal Compiler Errorが出てコンパイルできなかった。(/src で make)
420 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 07:39:23 ] >>412 >つまり4.*はもちろん、もう更新されない3.4.6ですら未完成な部分がある。 この結論がおかしい。最後の数パーセントを完璧にするには数百倍の努力を必要とする。
421 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 08:13:53 ] 別にその結論自体はおかしくないと思うけど
422 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 09:07:53 ] そっか、ならよかった
423 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 14:50:50 ] >>420 の文の意味がよく分からん。 残り数%の未完成が判明しても最終版は完成とみなすの?
424 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 14:58:50 ] >>423 たぶん、「ですら」ってとこに違和感感じてるんじゃないの? 完璧にするのは長時間かかるんだから、もちろんあるだろうということで。
425 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 18:23:24 ] 俺は普通に読んで「ですら」ってのは「完璧じゃないんですよということを強調」する意味で 特に違和感ないと思ったんだが。 「結論がおかしい(=間違ってる)」というのが何を意味するのか俺も分からん。 「もちろんあるだろう」ならそのまま「そりゃそうだろ」で済むからそれは違う気がする。 文系じゃないので深読みはしなかった。国語苦手だよ。
426 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 22:19:12 ] coutで文字列を出力した後にwcoutでワイド文字を出力すると文字化けする。 逆もそう。gcc4.0.2(vine3.2)。 うちの環境だけ?
427 名前:デフォルトの名無しさん mailto:sage [2006/11/01(水) 23:32:21 ] 具体的なコードでくれ
428 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 01:28:42 ] >>423 gccくらいのサイズのソフトウェアは完成することはない。
429 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 02:00:49 ] どれくらいのサイズのソフトウェアなら完成しますか?
430 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 02:18:52 ] >>425 「ですら」は「容易であるのにも関わらず」というニュアンスを持っているけど、 >>423 は「本当は容易じゃないんだぜ」って事を言いたいんじゃないかな。 >>412 は、機能追加が無いから 4.* よりは「容易であるのにも関わらず」 という話だから、用法を間違ってる訳じゃないんだけどね。 >>429 「完成したソフトウェア」を定義出来ないから、サイズに関わらず無理という 結論が返って来るに 100 ルピー。
431 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 03:39:32 ] >「ですら」は「容易であるのにも関わらず」というニュアンス どこの国のニュアンスだよ dictionary.goo.ne.jp/search.php?MT=%A4%B9%A4%E9&kind=jn&mode=0&base=1&row=0 板違いだからよそでやれ
432 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 06:43:05 ] ですらー総統万歳
433 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 08:23:34 ] Wikipediaの記事酷いな 悪意を持った半可通ほどタチの悪いもんはない
434 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 16:36:54 ] 質問します ある統計データのグラフを画像として出力するプログラムを作りたいのですが、 GCCで利用可能な良いライブラリがありましたら教えて下さい。 形式はjpeg、gif、pngの何れかに対応しており、文字列を画像に出力可能なものを探しています。 よろしくお願い致します。
435 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 17:52:30 ] gnuplot使えばいいんじゃ
436 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 06:32:23 ] gnuplotのコマンド出力してくれるライブラリが欲しいです
437 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 08:16:04 ] というか、スレ違いなんだが、 gnuplotは、デバイス非依存にするために、term抽象化をしているから、 *.trmで定義されているtermモジュールを、切り替えて使うようにすればOK。 $(GNUPLOT)/term/README読め。 話の続きがしたければ、くだ質スレ行け。
438 名前:デフォルトの名無しさん mailto:sage [2006/11/03(金) 16:32:30 ] popenで十分じゃない?
439 名前:デフォルトの名無しさん [2006/11/05(日) 10:56:17 ] >>433 むしろ、このスレの住人には神が何人もいるわけで、 このスレで少し議論して書き直してもいいと思う。
440 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 16:30:46 ] ada使ってる猛者いる?
441 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 18:10:03 ] 指先が擦り減るから止めた
442 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 19:34:09 ] >>440 pc8.2ch.net/test/read.cgi/tech/1010492940/
443 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 19:57:43 ] 歴史あるスレですね 書き込んでスレを進めるのがもったいなく思います
444 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 11:28:46 ] gcc(g++)で特殊化されてないテンプレートに特殊化されたテンプレートを 定義する方法はありませんか? VCやBCBでは非標準の機能も使えてしまうわけで、g++でもそういう機能を 有効にするようなオプションなりなんらかの方法を探してます。 バージョンはgcc4系を目標にしてます。
445 名前:434 mailto:sage [2006/11/06(月) 15:06:33 ] >>435 ,437,438 返信遅くなりましたが、有難うございます gnuplotでの作成を検討したいと思います
446 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 02:49:15 ] 質問です linux上で静的リンクでコンパイルしたつもりなのですが、 glibcに依存(?)しており、sharedな状態となっているためか、 プログラムが変なところで終了するようになりました。 glibcに依存しない、完全に独立したバイナリを作成するには どうしたらよいでしょうか? ポインタなど頂けると嬉しいです lddで対象プログラムを参照するとstaticだと言われるんですが、 コンパイル時に以下のようなワーニングが出ます。 warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/libc.aは確かにgethostbynameのシンボルを保持しているのですが、 libc.aをldするとglibcに依存するので完全に独立させたいです
447 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 11:01:20 ] libcにはexit(2)など、 プログラムの実行に必須の関数(およびシステムコールインターフェース)が入っているので、 なしでプログラムを実行することは不可能です。 あなたがlibcの代わりのシステムコール、main()スタブを書けば問題ないですが、 質問内容から言ってもそれは到底無理でしょう。
448 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 11:01:58 ] gethostbyname()を他から持ってくる。
449 名前:デフォルトの名無しさん [2006/11/10(金) 23:02:02 ] libc,libgcc抜きの環境でやってたときは結構面白かった。 車輪の再開発はやっぱり楽しい。
450 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 10:38:09 ] >>449 libgcc抜きは相当キツいだろうな・・・
451 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 17:43:33 ] ちょいと質問ですよ。 手元のgcc(for cygwin)は-m64がないのだけれど、-m64オプションを指定したときsizeof(int)はいくつになるの? LinuxとSolarisのそれぞれについて、教えてくれると助かります。
452 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 18:25:13 ] int main() { static int foo(); return foo(); } static int foo() { return 0; } 上記コードはgcc 3.4.4ではコンパイルできますがgcc 4.0.3ではできません。 以下はgcc 4.0.3のエラーログです。 test.c: In function ‘main’: test.c:2: error: invalid storage class for function ‘foo’ test.c: At top level: test.c:5: error: static declaration of ‘foo’ follows non-static declaration test.c:3: error: previous implicit declaration of ‘foo’ was here これはgcc 4.0.3での仕様変更でしょうか? サンプルソースの記述方法は標準仕様(ANSI CないしC99等)に違反していますか?
453 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 21:05:25 ] こういうの萎えるけどまぁしゃーない。漏れも暇だ。 > これはgcc 4.0.3での仕様変更でしょうか? だろうね、望ましい(厳しい)方向の。 > サンプルソースの記述方法は標準仕様(ANSI CないしC99等)に違反していますか? 厳密に違反(?)かは分からんが、 > static int foo(); この位置じゃmain()の中だけでしか宣言が有効じゃない。 しかも引数にvoidがないからPost-ANSIスタイルじゃない(==K&R)。 -pedantic -std=c89 -W{all,strict-prototype} とかとりあえずやっとけ。
454 名前:デフォルトの名無しさん [2006/11/13(月) 22:15:02 ] int型で扱える整数の最大値はいくつですか? PC-9801時代のC言語入門しか持ってないんですが printf ("%d\n",123456789); としても普通に表示されるようです。 この本だとエラーになる。
455 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 22:35:09 ] 処理系による。limits.hでもお読みなさい。
456 名前:454 [2006/11/13(月) 22:35:36 ] 原始的に一桁ずつ変更してみたら 2147483647でWarningが出なくなったけど、これで合ってるのかな…
457 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 22:36:36 ] >>454 sizeof(int)の値をnとして、(2^n)/2-1だよ。 intのサイズが4バイトなら2147483647ね。
458 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 22:39:35 ] 俺のところでは、 /* limits.h */ #define __INT_MAX__ 2147483647
459 名前:454 [2006/11/13(月) 22:40:58 ] ありました! # define INT_MAX 2147483647
460 名前:457 mailto:sage [2006/11/13(月) 22:45:37 ] 間違えたwww nは8をかけてビット単位にしてね。
461 名前:454 [2006/11/13(月) 22:59:30 ] >>457 >>460 ありがとうございます。 しかし私が理解できる数学は中学校2年レベルまでです…orz
462 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 23:25:09 ] >>457 そんな決め付けはよくないな。
463 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 23:43:11 ] >>461 457はそれくらいの数学がわかれば十分理解できるはず。 (Cではxorだが)ここでは^が冪乗の意味。2 ^ nは2のn乗ということ。
464 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 01:18:45 ] m桁のn進数の数値が表せる最大の数は(n^m)-1だろ?
465 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 01:23:07 ] >>464 しかしここでは2の補数による符号付き整数型を考えているので457。 ただ2^(n-1) - 1と書いたほうがいいのではと思うがな。
466 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 01:23:53 ] >>464 int の有効桁数は sizeof(int) では確定しない。
467 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 07:39:54 ] intを格納するのにパディングが必要になる処理系というのも 考えづらいけどね。
468 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 13:08:35 ] そりゃただの想像力不足だろ。 ILP64のように、intがマシンにとって最も自然なワードという仮定は もはやプラットフォームによっては崩れてる。
469 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 13:25:10 ] >プラットフォームによっては >プラットフォームによっては >プラットフォームによっては