- 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
- 792 名前:デフォルトの名無しさん [2007/08/05(日) 16:22:57 ]
- unsignedをforに使うと警告出るんだね・・・
警告消す方法ないのかなぁ
- 793 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 16:36:51 ]
- >>792
符号有り無しの比較だろ?なら型を合わせろ。
- 794 名前:・∀・)っ-くコ:彡- mailto:sage [2007/08/05(日) 16:51:56 ]
- for (unsigned int i = 0; i < n; i++)
とかなら、n の型が単にsignedなだけだろうが
- 795 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 16:56:22 ]
- ループカウンタとループ上限の値の型ははっきりと揃えるべし。
- 796 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:43:50 ]
- -Wno-sign-compareで消えるはず。
- 797 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:46:35 ]
- それは重要な警告だから解決とは言わん。
- 798 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:47:11 ]
- 消していいのか、と。
- 799 名前:・∀・)っ-くコ:彡- mailto:sage [2007/08/05(日) 18:53:01 ]
- 電車の脱線が起きても無視すれば運行に支障なしって言ってるのと変わらん
- 800 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 18:54:05 ]
- 集中砲火ワロタ
- 801 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 19:03:53 ]
- ダンゴ先生の発言はいつもピリリとしてるな
- 802 名前:デフォルトの名無しさん mailto:sage [2007/08/05(日) 21:02:22 ]
- スレが進んでるかと思えばこんなかw
- 803 名前:デフォルトの名無しさん mailto:sage [2007/08/06(月) 11:42:17 ]
- その質問をコンパイラのスレに書き込む時点で腐ってる
- 804 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 08:55:47 ]
- g++ 使って独習C++の例文ためしてたらそのままでは、エラーがコンパイルできなかった。
template <class T> class Num { public: T x; Num(T i) { x = i; } virtual T get_val() { return x; }; }; template <class T> class Square : public Num<T> { public: Square(T i) : Num<T>(i) {} T get_val() { return x * x; } }; を一応継承したクラスで、"x"を"Num<T>::x"としたらコンパイルできたけど、 他のコンパイラでためしたら↑でもできるんだが、このままで、g++で通すこと出来ませんか?
- 805 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 09:05:10 ]
- >>804
そのままじゃ無理。 this->x でもいける。 gcc.gnu.org/gcc-3.4/changes.html "In a template definition, unqualified names will no longer find members of a dependent base ..."
- 806 名前:デフォルトの名無しさん mailto:sage [2007/08/07(火) 12:01:20 ]
- >>805
サンクス
- 807 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 10:57:04 ]
- インラインアセンブラの構文を知りたいと思い、
4.21のgcc.infoを読んでいるのですが、 5.35 Assembler Instruction with C Expression Operands しか見つからず、制約に関することしかわかりません。 構文はどこに載っているのでしょうか。
- 808 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 11:02:05 ]
- as.info
- 809 名前:807 mailto:sage [2007/08/08(水) 21:24:08 ]
- アセンブラの構文ではなく、
インラインアセンブラの構文なんですが...
- 810 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 22:46:48 ]
- 制約については
gccint.info か gcc/config/*/*.{c,h,md} を眺めれ。 ターゲットとか記述したいものを書けば誰か答えてくれるんでね?
- 811 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:02:08 ]
- www.google.co.jp/search?q=gcc+%E3%82%A4%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%A9
こういうのとは違うのかね
- 812 名前:デフォルトの名無しさん mailto:sage [2007/08/08(水) 23:16:36 ]
- アセンブラの構文 + インラインアセンブラの制約
以外に何が知りたいのか分からない。 asm("mnemonic" : "+r"(var), "r"(var2) : "="(var3) : "g"(var4)); のコロンで区切る部分の意味を知りたいなら 5.37 Constraints for asm Operands を。 ニモニックそのものを知りたいならここじゃない何処かへ。
- 813 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:56:59 ]
- >>799
いや、さすがにそれは支障あるw
- 814 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 12:59:35 ]
- ここではないどこかへ
- 815 名前:デフォルトの名無しさん mailto:sage [2007/08/09(木) 21:15:08 ]
- >>813
>>796 も同じくらい支障があるって話だ。
- 816 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 16:43:58 ]
- GCC 4.3.0 Status Report (2007-08-09)
gcc.gnu.org/ml/gcc/2007-08/msg00181.html 来月にはstage3に入るらしい うまくいけば今年中に出るかなぁ…
- 817 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 17:15:58 ]
- C++0x のどのくらいかは
拡張機能として対応してくれるのかね。
- 818 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:46:49 ]
- >>817
既にいくつか対応してる。 gcc.gnu.org/gcc-4.3/cxx0x_status.html
- 819 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 07:08:04 ]
- GCCで文法チェックだけするって無理?
リンクとかしなくていいから(単体で)コンパイルできないときだけ エラー出してほしい。
- 820 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 07:30:56 ]
- >>819
リンクどころかアセンブルさえせずにコンパイルするだけなら-S アセンブルまでなら-c
- 821 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:10:07 ]
- && って何だー
- 822 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:16:06 ]
- >>821
釣り? マジならC初心者スレへ。
- 823 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:23:00 ]
- >>820
ありがと!でもけっこう遅いなあ・・・。文法チェックだけならもっと速いと思ってたんだが・・
- 824 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:28:40 ]
- >>823
Cならsplint使えば? +skip-sys-headers +single-include +posixlib な感じ?
- 825 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:40:41 ]
- >>822
>>818 にある右辺値参照の方ね。
- 826 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 09:48:04 ]
- >>819 -fsyntax-only
- 827 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 10:55:28 ]
- >>825
あぁ、operator&&ね。
- 828 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 10:56:29 ]
- 違うだろ。
- 829 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:21:45 ]
- 破壊的コピーをするみたいだが、
それを意識してプログラムするのは難しそうに感じる。 どうなんだろう。
- 830 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 13:33:25 ]
- move semanticsでググれ。
>>829 > それを意識してプログラムするのは難しそうに感じる。 それが欠点になる領域ではC++は使わないのが良い。
- 831 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 18:59:36 ]
- >829
ライブラリ作る側が頑張って対応してくれれば使う俺らはあまり考えなくても(゚Д゚)ウマー、というのが妥当な使われ方なんじゃないの? 一般人が template metaprogramming なんかしない(よな?)のと同じようなレベルで。
- 832 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 19:54:04 ]
- *_ptr見ても、それが難しいのは分かるだろ?
C++はもはやプログラミング言語の実験場だ!
- 833 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 14:33:30 ]
- 次期では auto_ptr は deprecated になるっぽいな。
shared_ptr を推奨するようだ。
- 834 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 17:00:23 ]
- C++ 俺に近づくとやけどするぜ
- 835 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 14:41:10 ]
- AT互換機でMacOS用のバイナリを作るクロス環境って・・・作れないのかな?
ググってみても事例が見つからない
- 836 名前:デフォルトの名無しさん [2007/08/27(月) 14:44:15 ]
- 失礼
age忘れた
- 837 名前:デフォルトの名無しさん [2007/08/27(月) 15:07:59 ]
- >>833
次期って何の次期?
- 838 名前:デフォルトの名無しさん mailto:sage [2007/08/27(月) 15:21:49 ]
- ISO/IEC 14882:2003 の次期のことじゃね
- 839 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:52:45 ]
- ldd で出てくる共有ライブラリのパスを書き換えることってできない?
$ ldd foobar libfoobar.so.1 => /somedirectory/libfoobar.so.1 (0x00000000) って絶対パスになってるんだけど、このsomedirectroyを移動したいの。
- 840 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:21:40 ]
- >>839
質問を文字通りに受け取るなら、 $ ldd foobar | sed "s/somedirectory/anotherdirectory/g" で。 ライブラリのパスは、実行ファイル内では ・相対パス(basename)が入っている場合 ・絶対パスが入っている場合 がありんす。 前者は、$LD_LIBRARY_PATH を指定すればいい。 後者は、バイナリエディタで実行ファイルを書き換えるとか、 $LD_PRELOAD で上書きするとか。
- 841 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:31:47 ]
- もちろん下の意味だけど、LD環境変数は使いたくない。
そーかーやっぱバイナリ書き換えが必要かー。そういうツールないのかなあ。 とにかくありがと!
- 842 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:47:36 ]
- /etc/ld.so.conf.d?
- 843 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:10:54 ]
- man ldconfig
- 844 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 14:21:24 ]
- >>842
deb系のディストリか? 普通は/etc/ld.so.confだと思うけど /etc/ld.so.conf.dがあるならそのディレクトリの中のファイルを参考に 自分でパスを追加したいのを作ればいい 追加したらrootで # ldconfig これで環境変数のキャッシュを更新してくれる
- 845 名前:デフォルトの名無しさん [2007/09/12(水) 14:34:48 ]
- gcc.gnu.org/ml/gcc/2007-09/msg00240.html GCC 4.2.2 RC1
gcc.gnu.org/ml/gcc/2007-09/msg00286.html GCC 4.3.0: Stage 3 順調に進んでるのだなァ…
- 846 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 16:58:07 ]
- >>839
chrpath は?
- 847 名前:デフォルトの名無しさん [2007/09/13(木) 19:56:13 ]
- ゲーツェーツェー
- 848 名前:デフォルトの名無しさん [2007/09/13(木) 19:57:04 ]
- っていうか、ジーダブルシーって言う奴がいてムカつく。
- 849 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 20:16:43 ]
- ジーシーシーでいいじゃんよねー
- 850 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 21:38:03 ]
- IEEEはアイイーイーイ−だよな。
GCCは日本人らしくグニュ・コンパイラ・コレクションと呼ぼう
- 851 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:35:40 ]
- あいさんいー
- 852 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:50:28 ]
- イェェェ!
- 853 名前:デフォルトの名無しさん [2007/09/14(金) 08:58:48 ]
- 発音は大事だ。
ヘッケラー・アンド・コッホ とか言うバカもんがいるが、なぜドイツ語の間に「アンド」などという英語が含まれているのか。 元がドイツ語なのだから、全部ドイツ語にして 「ヘッケラー・ウント・コッホ」と呼ぶべきだ。
- 854 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:13:36 ]
- GNUで言語も作ってしまえ
ライセンスはもちろんGPL
- 855 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:15:43 ]
- ・ウン ・コ
- 856 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:40:30 ]
- >>854
言語にはライセンス/コピーライトがありません。
- 857 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:41:48 ]
- マジレス禁
- 858 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 09:42:35 ]
- やけに伸びてるな、というときは期待できない
と予め思いつつ見たけど、やっぱりウゼェ…… なんでこういうのにだけは以上に喰い付きがいいんだ
- 859 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 10:49:09 ]
- マジで言ってるわけじゃないだろw
- 860 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 13:11:54 ]
- ぐくっ
- 861 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 14:19:13 ]
- >>856
言語の仕様書がGFDLなんだろう、たぶん。
- 862 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:02:05 ]
- ADAスレがもう織田信長スレしか無い件
- 863 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:02:58 ]
- 違った武田信玄だったけどもう落ちてるオワタ
- 864 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:16:05 ]
- 英語は発音大事と言ってはいるものの、実際に
インペろぅベド(imperoved)とか言われるとムカッと来るからな。
- 865 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 17:17:55 ]
- グロゥバロゥとかヴァアミアンとかね
- 866 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 01:22:29 ]
- 織田信長って言語まじであるの?
- 867 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 02:28:47 ]
- >>864
そんな英単語は無い
- 868 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 11:11:33 ]
- いまgdbのバグ?みたいなものを追いかけてて、再現条件が
・ある64bitローカル変数(long long)が ・最適化によってもoptimized outされずに ・スタックに取られずレジスタに直接アサインされる というあたりにあるのではないかと考えてます。この時 (gdb) p var の 出力での sign bit のハンドリングが違うような感じ>gdbのバグ? で、これの再現コードを作ろうとしているのですが、 ・レジスタに乗せる方向に誘導 -> register ・最適化させない -> volatile? にすると、register は無視で普通にメモリに乗ってしまってうまく いきません。で、 volatile register int64_t max asm("%edi:%esi"); でそんな風にならないかと試し中なのですが、↑はレジスタ1つ(32bit)なら いけるものの、2つで64bit変数を表したい時の書き方がわかりません。 どなたか教えてくださいませ・・・
- 869 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 12:47:51 ]
- アセンブリ手で書けばいいじゃん
- 870 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 14:00:44 ]
- デバッガから見える変数にバインドされるレジスタを、どうやって
アセンブリ手書きで設定するのか、正直わかりません。 シンボルデバッグ情報に変数<->レジスタ・メモリアドレスマッピングは 入っていると思うんですが、これも手書きできるということ?もしかして インラインアセンブラではなく、フルアセンブラで書くという話なら それはちょっと自分の能力を越えてるような・・・
- 871 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 14:05:42 ]
- >>870
こんな関数でもコンパイルしてみりゃ何をすればいいか判るんじゃね? -- long long func(long long foo) { return foo; }
- 872 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 18:20:08 ]
- >>971
それって .debug_* セクションを自分で作れとやっぱり言ってる? info gdb-int してみたけど、激しくハードル高い・・・
- 873 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 18:37:11 ]
- >>872
戻り値は64bitのレジスタ変数と同じ状態になるわけだが。 ついでに、gcc -S-gすればデバッグ情報が漏れなく埋め込まれるわけだが。 もしかして、その程度の知識もないのにデバッガを疑っちゃってるわけ?
- 874 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 19:19:00 ]
- >>873
gdbが黒だとは言ってなくて、ただgdbからの見え方がその条件差で 必ず違うので、もっと詳しく見たいと思ってます。 そのコードだとgdbからは変数はレジスタにバインドされて見えないので 別の方法をまだ考えてますが、-Sのダンプでデバッグ情報埋め込み方法を 調べられるという考えは頭から抜けてました。やってみます。
- 875 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 09:32:01 ]
- もっと謙虚になって出直せ。
- 876 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 20:52:19 ]
- gdb のソース読めばいいのでは?
- 877 名前:868 mailto:sage [2007/09/16(日) 22:08:28 ]
- すみません、>>875 の通り、私ごときのレベルでしていい話ではなかったと
痛感しているので、全部なかったことにして下さい。このスレに書いていいと 認めてもらえる程度になるまでROMってます。
- 878 名前:デフォルトの名無しさん [2007/09/18(火) 13:32:01 ]
- i686環境で例えばPPC用に何らかのアプリなどをクロスコンパイリンゲすると
本当にPPC環境で動くもんなの??? 玄箱HGでも買おうかと思うのだが、さすがに玄箱でビルドとかすると、 PPC266MHzじゃつからろうなあ、と思って、 できれば速いi686環境でPPCにガチガチに最適化してから玄箱に転送できれば。
- 879 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:49:25 ]
- 何をビルドするの?
ほとんどバイナリパッケージが揃っているけど? > 玄箱debian 「ガチガチに最適化」とかヲタ臭いことがやりたいなら、 ソースからバイナリパッケージを再ビルドすれば?
- 880 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:49:31 ]
- >>878
簡単なテストプログラム書いて、動くかどうかやってみればいいんじゃないの?
- 881 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 13:59:31 ]
- >>880
まだ買ってないだろw
- 882 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 14:01:16 ]
- >>881
linuxじゃないけど、クロス環境でやったことあるけど...
- 883 名前:デフォルトの名無しさん [2007/09/18(火) 14:28:24 ]
- クロス・ダァイッチュラント
- 884 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 14:29:50 ]
- kurohako遅いよ
- 885 名前:デフォルトの名無しさん [2007/09/18(火) 14:58:58 ]
- ゲーツェーツェーを来んあぴるするのに4時間くらいかかりそうだな
Pentium3 500MHzでさえ4時間かかったのだから
- 886 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:04:49 ]
- コンパイルを4時間とか考えられないし見たことも無い俺は素人
- 887 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:24:52 ]
- X68kでgcc1.3のコンパイルに一晩かかった時代もありました
- 888 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 15:32:21 ]
- 動画のエンコードをやるようになると、4時間というのは大した時間に思えなくなる。
2passで47時間とかあるからな。
- 889 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 16:31:48 ]
- それはさすがにPCごと買い替えとか考えるべき時間のかかりようだと思う。
- 890 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:06:07 ]
- 24時間ビーテレだから
1時間2時間コンテンツでそれだけかかったらアレだが。
- 891 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:06:17 ]
- >>885
もっとかかったような気もするが… 寝る前にmakeしておくと、起きるまでには終わってるくらい。
- 892 名前:デフォルトの名無しさん mailto:sage [2007/09/18(火) 17:13:12 ]
- 起きたらエラーで止まってたとか?
|

|