1 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 14:13:04.14 ] 史上最強かもしれなかったツール、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について part9 hibari.2ch.net/test/read.cgi/tech/1246059290/ 関連スレ 【最速へ】LowLevelVirtualMachine【LLVM】 hibari.2ch.net/test/read.cgi/tech/1211547655/
2 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 17:04:19.11 ] ストラウストラップ本は、あれプログラミング初心者向けの本じゃないから注意な 中級者が現実的なプログラミングの方法を学ぶ為の本であって
3 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 17:12:55.71 ] 初心者って何の? CやJavaは知ってるが、これからC++をやろうって言う人にはうってつけのような・・・
4 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:03:27.53 ] 俺にはプログラミングの初心者って書いてあるように見えるが…?
5 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:16:27.85 ] >本書はその原則を実際に展開しながら「プログラミングとはなにか」「どうやってプログラミングを学習するか」を >平易に解説してゆく。何度も挫折を繰り返した学習者や、原点に立ち戻り「プログラミング」を深めたい実務者など、 >すべての開発者必読の1冊である。 と、あるよ?
6 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:19:25.36 ] >>2 プログラミングの初心者は現実的なプログラミングを学んじゃいけないの?
7 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:27:43.87 ] まぁ あの本はストラウストラプ先生(長い)の ありがた〜い言葉を入門者のように素直に聞くというのが いいかと。 神の声のような感じでうっとりですよw でも int char double string if switch while for vector ってな 感じでポンポン出て来て、リズムがいいっすね。 ほんとにC++はツールとして選んだって感じです。
8 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 18:29:48.06 ] 一冊くらいはびよーんすぽっすぽっの本も読んでみるか。
9 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 19:26:15.61 ] 前スレ>>999 いや時代遅れで役に立たない本だ、とか言いたかったわけじゃなくて 単純に>>976 が勘違いしてそうだったので。
10 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 23:44:24.91 ] 禿があれ書いた時は、ああもうC++0xが確定寸前でやることないから、 プログラミング入門でも書く気になったのかなと思った。 もちろんそれは気のせいだった。
11 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 01:49:11.78 ] >>3-5 とんでもない誤解だよ ttp://d.hatena.ne.jp/eel3/20110813/1314198158
12 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 01:58:49.57 ] >ただ「プログラミングを始めるための最もやさしい本ではない」訳で、 >何かしらの開発経験はあるけど色々と足りない部分を痛感しているような人なら本書で独習することも可能だろうが、 >それよりも経験値が不足している人やプログラミング未経験の人が独習用に使うのは避けたほうが無難だろう ふ〜ん。(゚σ ゚)ホジホジ
13 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 02:52:57.76 ] まえがきからの抜粋に文句つけられても・・・ >本書はプログラミングを始めるための最もやさしい本ではないし、そのようなつもりで書いていない。 >著者が目指したのは、現実のプログラミングの基礎を最も簡単に学べる本である。 >現実のソフトウェアの多くがほんの数年前まで高度であると見なされていた技術に基づいていることを考えれば、実に意欲的な目標ではないか。 >基本的には、他の人が使用するためのプログラムを書き、それを責任を持って行い、 >それなりの品質を維持したいと考えていることが前提となる。 >つまり、プロとして恥ずかしくないレベルを目指しているものと想定する。 >そこで、本書では教えたり学んだりするのがやさしいものではなく、 >現実のプログラムに取り組むために必要なものがカバーされるように話題を選んだ。
14 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 03:34:40.08 ] あえて入門書というカタチを取ったおかげで 言葉や想いが伝わりやすくなってる気がする。 でも その言葉は熱く優しく気高い。
15 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 13:22:41.77 ] まあ独学でやるにはそれなりのプログラミング経験は必要ってこったな
16 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 02:27:29.37 ] 趣味ならrubyなりnode.jsなり、もっと良い言語があるのにな
17 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 17:31:07.36 ] 釣られませんよ
18 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 13:33:25.48 ] unused but set variablesって4.6以降エラー扱いがデフォになってるみたいだけど、 これって弾かないといけないくらい有害なの? いまいちデメリットがよくわかんないんで誰かヒントくれ。
19 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 14:45:09.25 ] 弾込めたら弾かないと
20 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 16:53:41.85 ] 無駄な変数宣言しとるで って、だけじゃあ 違うかな
21 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 19:14:40.83 ] その程度で警告じゃなくてエラー扱いはやりすぎだからなんか深い理由があるの? と>>18 は聞いてるようだが
22 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 20:01:04.29 ] 引数の未使用でもエラー吐くの?
23 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 20:03:57.34 ] 無能って教えてくれてるんじゃあ、コンパイラが
24 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 20:10:01.63 ] バグのあらわれだったりすることはあるよね。
25 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 20:16:15.63 ] -Wunused-parameter つけんと特に怒らんけどね、コンパイラ
26 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 21:13:48.24 ] -O2 -Wall -Werrorあたりよくわからんまま適当につけて 怒られているとエスパーしてみる
27 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 23:10:36.24 ] -Werror=unused-but-set-variable #: c-decl.c:1183 #, gcc-internal-format msgid "variable %qD set but not used" msgstr "変数 %qD が設定されましたが使用されていません"
28 名前:デフォルトの名無しさん [2011/09/25(日) 03:08:05.57 ] 質問です gcc4.6.1(MinGW)でRaw string literalで R[]で囲もうとするとコンパイルエラーになります R()で囲むとコンパイルが通るのですが、どちらが正しいのでしょうか?
29 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 03:12:44.02 ] R"( )" で囲むのが正しいよ R"hoge( )hoge" とかで囲んでもいいけど R[ ] も R( ) もコンパイル通らない
30 名前:デフォルトの名無しさん [2011/09/25(日) 03:13:51.73 ] >>29 ありがとうございます 早くc++11の規格表が欲しくなりますね
31 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 03:14:04.05 ] あ、しまった sageます
32 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 03:14:42.11 ] FDISはもう落とせないからねえ
33 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 03:15:29.50 ] はい FDISはいりません 正規のPDFを購入予定です
34 名前:デフォルトの名無しさん mailto:sage [2011/09/26(月) 10:50:49.10 ] そのうちANSI版が安く出るでしょ。(ISO版は高いけど)
35 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 02:14:55.66 ] やっとリポに4.5.3来た 4.4.5 → 4.5.3 ビルドしてきます
36 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 16:37:36.59 ] 共有ライブラリのリンクの方法に関する 正式なドキュメントってどこにあるんでしょう? GCC online documentation gcc.gnu.org/onlinedocs/ ここのどのバージョンでもいいですけど リンクオプションのページを見ても -l の説明にはスタティックライブラリの ことしか載ってないですよね? 今まで普通に -l で共有ライブラリのリンクも 指定して特に問題なく実行できていたのですが 一度ちゃんと仕様を確認しておこうと思ったら どこにもないのですが… それとも単純にスタティックの場合の記述を 共有の場合にも適用してしまっていいということでしょうか? ご存知の方いましたら教えてください
37 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 17:23:46.23 ] >>36 共有ともスタティックとも書かれていないような。 ttp://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Link-Options.html#index-Libraries-968
38 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 17:27:24.26 ] >>37 -l の説明の最後に ... with `lib' and `.a' and searches several directories. とあったので拡張子からしてスタティックのことだと思ったのですが そういうわけではないのでしょうか?
39 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 17:36:46.07 ] man ldしな。gccはコンパイラやリンカをそこそこよろしいオプションで起動するドライバ。 例外投げる共有ライブラリを使う場合は-static-libgccは使わない方がいい。 本当に詳しく知りたいならbinutils側のドキュメントと現在の実装度、 使うオブジェクトファイル形式の仕様、OS側のライブラリ管理方式、 自分の使うgccのspecsファイルを見れば何したらどうなるか分かる。
40 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 18:09:29.22 ] man ld はCentOS5で確認済みでしたが、共有ライブラリに関することは 載っていませんでした。(むしろスタティック限定とも取れる書き方) …が、ネットでいくつか検索してみたところ、例えば www.sra.co.jp/wingnut/ld/ld-ja_2.html では > -larchive > --library=archive > 共有ライブラリをサポートしているシステムでは, ld は, 拡張子が .a 以外のライブラリをも検索する. > 特に, ELF システムと SunOS では, ld はあるディレクトリでライブラリを検索する時, 拡張子が .a の > ものよりも先に拡張子が .so のものを 探す. 約束により, .so という拡張子は共有ライブラリを表す. という記述があり、一応スッキリしました。 (割と重要な情報だと思いますが、マニュアルに必ずしも記述されてないようですね) binutilsをはじめとするその他ドキュメントについても確認してみます。 どうもありがとうございました。
41 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 18:39:47.33 ] GCCはmanpageは参考程度と思え、とどっかで読んだ記憶がある
42 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 18:46:41.29 ] 今のbinutilsのmanなら-l namespecで同じ記述がある筈なんだけどなあ CentOSのパッケージの都合でもあるのか >>41 逆にさんざん探して無いと思ってた情報がmanに載ってる場合も
43 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 18:51:17.70 ] gcc -Wl,--verbose ほげほげ
44 名前:デフォルトの名無しさん mailto:sage [2011/10/03(月) 00:59:51.12 ] >>40 > On systems which support shared libraries, ld may also search for > files other than libnamespec.a. Specifically, on ELF and SunOS > systems, ld will search a directory for a library called > libnamespec.so before searching for one called libnamespec.a. (By > convention, a ".so" extension indicates a shared library.) Note > that this behavior does not apply to :filename, which always > specifies a file called filename. manpageにこの記述がないbinutilsのバージョンは何?
45 名前:横レス mailto:sage [2011/10/03(月) 01:24:26.74 ] 説明 ld は複数のオブジェクトファイルや書庫 (archive) ファイルを結合し、それ らのデータをリロケートして、シンボルの参照をまとめる。新たな実行プロ グ ラ ムをコンパイルして作成する作業の最終ステップは、多くの場合 ld の呼び 出しとなる。 ld はリンカコマンド言語のファイルを受け付ける。このファイルでリンク処理 を明示的に、また完全に制御することができる。この man ページではコマンド 言語を説明していない。コマンド言語や GNU リンカのその他の内容に関する詳 細 は info の `ld' エントリか、マニュアルである ld: the GNU linker を参 照すること。 ld の本バージョンではオブジェクトファイル関連の作業に汎用の BFD ライ ブ ラ リを用いている。これによって ld では多くの異なるフォーマットのオブジ ェクトファイルを読み、書き、結合することができるようになっている ( 例え ば COFF や a.out)。異なるフォーマットをリンクして、あらゆる種類のオブジ ェクトファイルを作成できる。サポートされているフォーマットや関連する ア ーキ テ ク チ ャに 関しては ` objdump -i' を実行すればよい。詳細は obj- dump(1) を見よ。 GNU リンカは柔軟であるだけでなく、診断 (diagnostic) メッセージも他の リ ン カより詳しい。多くのリンカはエラーが生じるとすぐに動作を停止してしま うが、 ld は可能な限り処理を続け、他のエラーに関しても知らせようとす る ( あるいはエラーにもかかわらず出力ファイルを作成してしまうことさえある) 。 GNU リンカ ld は多くの状況をカバーするように作成されている。また他の リ ン カとできる限り互換性を保つようにしてある。したがって ld の振る舞いは 、コマンドラインや環境変数によって細かく制御できるようになっている。
46 名前:デフォルトの名無しさん mailto:sage [2011/10/05(水) 21:17:11.75 ] Merging In The GNU D Language Compiler To GCC www.phoronix.com/scan.php?page=news_item&px=OTk2NA D言語、いらっしゃい
47 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 19:40:37.99 ] objdumpでx86-64のバイナリモードで逆アセンブルしたいんだけど上手くいきません $ /usr/local/bin/objdump -D -m x86-64 -b binary a.exe a.exe: file format binary /usr/local/bin/objdump: can't use supplied machine x86-64 -m i8086 -m i386 では上手くいきますが-m x86-64は逆アセンブルしてくれません なんででしょうか? obudump -d a.exeとすれば普通にx86-64を逆アセンブルしてくれます
48 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 19:48:38.09 ] -m i386:x86-64 -b binary ... これで上手くいきました・・・すいませんでした
49 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 16:11:17.24 ] 4.6.2
50 名前:デフォルトの名無しさん mailto:sage [2011/11/22(火) 22:16:04.41 ] Binutils 2.22 released
51 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 06:13:33.85 ] すいません リンカ(ld)のオプション-Rについて教えてください マニュアルには「シンボル名とそのアドレスを filename から読み込む.」 とありますが、 これはライブラリのあるフォルダを指定しているということでしょうか? とすると、gccの-Lや-lはなんのために有るのでしょうか?
52 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 07:00:06.55 ] -l LIBNAME, --library LIBNAME Search for library LIBNAME -L DIRECTORY, --library-path DIRECTORY Add DIRECTORY to library search path -R FILE, --just-symbols FILE Just link symbols (if directory, same as --rpath) -rpath PATH Set runtime shared library search path
53 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 21:57:03.33 ] >>52 ん? よくわからないです。 例えば cc -L/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libarchive/.libs -L/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libfetch -L/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libnbcompat -Wl,-R/usr/pkg/lib -L../lib -o pkg_add main.o perform.o -linstall -lfetch -larchive -lbz2 -lz -lnbcompat -lnbcompat を実行すると、 ../lib/libinstall.a(parse-config.o): In function `pkg_install_config': parse-config.o(.text+0x3f6): undefined reference to `fetchConnectionCacheInit' と言うエラーが出ます。 原因は、 -R/usr/pkg/libのところで、/usr/pkg/libというディレクトリが存在していないためだと思われるのですが、 -Wl,-R/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libarchive/.libs -Wl,-R/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libfetch -Wl,-R//usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libnbcompat -Wl,-R../lib と追記した所、 cc:-R/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libarchive/.libs linker input files unused sinece linking not done と出て、失敗してしまいました。 解決策は、/usr/pkg/libを作ってそこにlib**をコピーすれば良いかなとも思ったのですが、 これで良いでしょうか?
54 名前:デフォルトの名無しさん mailto:sage [2011/11/23(水) 22:24:14.63 ] >>53 >よくわからないです。 ド素人が何をしてるのか、わかる人がいるとは思えんけど --rpathってのは、暗黙にリンクされるlibファイルの場所を指定するんだけど (俺もよくわかってないので雰囲気でわかって頂戴) -Lはlibのある場所を指定するところ libhoge.aをlinkしたいとき、フルパスで指定すると ほげほげ/libhoga.a と書くところを -Lほげほげ -lhoge って、書けるっていうだけ libの依存関係によっては、書く順番によってはエラーになることがある 実績のあるtar玉から configure,makeして何やってるか、見て見るところから始めたら 言葉で覚えるより出来合いのもの見て覚えるほうを個人的にオススメする
55 名前:デフォルトの名無しさん [2011/11/28(月) 02:49:40.60 ] すいません。教えてください。 BSD/OSにてpkgsrcをコンパイルしています。 gccのバージョンは Using builtin specs. gcc version 2.95.3 20010315 (release) です。 何度か/usr/pkgsrc/bootstrap/bootstrapを行っていて、 失敗するごとに、ソースの修正→/usr/pkgsrc/bootstrap/cleanup→/var/dbの削除を行って 再度/usr/pkgsrc/bootstrap/bootstrapを行うという繰り返しで進んでいます。 /usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/pkg_install-20110805/addというディレクトリで cc -L/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libarchive/.libs -L/usr/pkgsrc/bootstrap/work/wrk/pkgtools/pkg_install/work/libfetch -L/usr/pkgs rc/bootstrap/work/wrk/pkgtools/pkg_install/work/libnbcompat -Wl,-R/usr/pkg/lib -L../lib -o pkg_add main.o perform.o -linstall -lfetch -larchive -lbz2 -lz -lnb compat -lnbcompat ../lib/libinstall.a(parse-config.o): In function `pkg_install_config': parse-config.o(.text+0x3f6): undefined reference to `fetchConnectionCacheInit' ../lib/libinstall.a(pkg_io.o): In function `fetch_archive_open': pkg_io.o(.text+0x19): undefined reference to `fetchXGet' というエラーが発生しました。
56 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 03:53:25.95 ] エラーメッセージの内容が理解できないの としか、いえんな
57 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 08:57:15.07 ] 何カ所でマルチポストしてるんだよこいつ
58 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 15:50:55.67 ] BSDIってまだサポートされてるのとかgcc-2.95とかそれでもマルチとか驚愕
59 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 17:56:22.57 ] autotoolsで作ってる共有ライブラリを fprofile-generate、fprofile-useを使って 最適化する方法の詳細な記事を書いてください。
60 名前:デフォルトの名無しさん mailto:sage [2011/11/28(月) 17:59:00.69 ] ?ttp://d.hatena.ne.jp/pyopyopyo/20060311
61 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 12:35:51.36 ] 私は高校2年の女子です。 C言語の勉強をしています。 次のようなプログラムを書きました。 #include <stdio.h> #include <curses.h> int main() { int x; getch("%u", x); printf("%\n", x); return 0; } コンパイルエラーが error: macro "getch" passed 2 arguments, but takes just 0 と、出ました。 /usr/include以下にcurses.hがあることは確認済みです。 原因と対策を教えてください。
62 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 13:43:09.47 ] error: macro "getch" passed 2 arguments, but takes just 0
63 名前:デフォルトの名無しさん mailto:sage [2011/12/02(金) 13:44:58.01 ] エラーメッセージを読め。読み方がわからなければ先生に聞け。 getch()に引数は不要。他の関数と間違えてる?
64 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 01:51:07.80 ] エラーメッセージ、本当は error: の前に "なんとか.c:6:14 " みたいなのがあるはずだが。 それに本当にcursesでプログラムを書きたいのかと。 もしこれが真面目な質問なら、C言語の質問をするようなスレで、どんなプログラムを 作りたいのか説明して質問した方がいいと思う。 本当にcursesを使うならUNIX系の人じゃないと知らないかもしれんけど。
65 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 06:50:41.64 ] 初心者ですみません Cygwin で gcc を使ってます assert() を使用すると undefined reference to `_assert' エラーが出て困ってます どなたかご教授頂けると幸いです
66 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 07:23:22.03 ] #include <assert.h>してある?
67 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 10:45:39.26 ] >>66 ビンゴでした(;^ω^)
68 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 23:11:00.34 ] gccというかautotoolsなのですが ./configure --build=x86_64-w64-mingw32 と毎回指定するのが面倒なので、環境変数で指定できないでしょうか?
69 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 02:11:26.49 ] alias conf='./configure --build=x86_64-w64-mingw32' とでもしとけばいいんじゃね?
70 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 02:22:58.33 ] config.niceを拾っておいて2回目以降はそれ使わね?
71 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 02:42:43.54 ] >>70 config.niceって初めて知った。 ググるとPHPやApacheで使われているもののように見えるけど、よくわからん。
72 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 17:49:05.22 ] >>70 head config.log してたわ〜と思ったけどそんなファイルできないぞ どうもautoconfの機能ではなく、configure.acに自分で処理書いて生成してるっぽいが
73 名前:デフォルトの名無しさん [2011/12/10(土) 23:10:38.16 ] SandyBridgeでg++ -march=native -mtune=native で作ったバイナリって Core2とかじゃ動かないみたいなんだけど、どのオプションでどれで動くかって 表か何かない?
74 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 03:28:34.47 ] >>73 nativeだとAVX(-mavx)が入るからだろ -march=core2にしたらいいよ オプションはこれででる ttp://d.hatena.ne.jp/ktomoya/20100510/1273510042
75 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 08:32:33.51 ] >>74 おぉ、サンクス。 ちなみに、MinGW/g++.exe (GCC) 4.6.1でこんなんでた。 -march=corei7-avx -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma -mno-fma4 -mno-xop -mno-bmi -mno-tbm -mavx -msse4.2 -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=corei7-avx
76 名前:デフォルトの名無しさん mailto:sage [2011/12/11(日) 15:53:29.35 ] >>75 -mavx -msse4.2 -msse4.1 -maes -mpclmul -mpopcnt ... などがCPUごとに実装状況が異なる命令を使うってオプションだから SSE4.2やAVX、POPCNTなど最近できた命令に対応していないプロセッサだと動かない -march=nativeはコンパイルしたマシンのプロセッサなどからこういうオプションを勝手に付けてくれるものだから 対応表とか作るとCPUのカタログになってしまうので コンパイル済みのバイナリを別のマシンで実行したいならmarchやmtuneは指定しないか 対象が分かっているならその中で一番機能が少ないプロセッサに合わせて設定したほうがいいかと
77 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 21:45:35.33 ] 普段Pythonを使っているんだけど、gcc on LinuxでCで何かの分野の処理をやるとしたら何の分野がいいかな? コーディングがマゾい奴はやりたくない。うひょー、コーディング楽しいって感じの週末にしたい。
78 名前:デフォルトの名無しさん mailto:sage [2011/12/16(金) 22:57:34.93 ] フィボナッチ数でも計算してろ
79 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 04:10:44.29 ] wxPython と wxWidgets のバインディングが出来るツールをおながいしまつ
80 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 10:18:33.81 ] windows7にしたらResource temporarily unavailableエラーが頻出するようになったんだけど どういうことこれ
81 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 12:07:36.06 ] Cygwin使っているならCygwin固有の問題
82 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 14:50:50.96 ] 問題だね(´・ω・`)
83 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 16:04:05.91 ] 問題と思うから問題になる 問題と思わなければ問題ない
84 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 19:14:46.19 ] >>81 win7からメモリ管理の方式が変わったらしいし たぶんメモリアクセスのコンフリクトだと思うんだけど 直し方がなあ コンパイルするたびにがちゃがちゃとエラーで止まるのが非常にうざい
85 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 13:01:35.03 ] 具体的に 何やったら、こうなった って、かいてほしいな
86 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 12:16:02.83 ] Cygwin + MinGW + GCC 相談室 Part 6 toro.2ch.net/test/read.cgi/tech/1304609116/ というのがある。
87 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 13:21:45.30 ] 4.6.1の情報はドコで手に入りますか?
88 名前:デフォルトの名無しさん mailto:sage [2012/01/03(火) 20:06:07.38 ] tar玉に入ってるだろ
89 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 18:39:50.52 ] 最適化しても助長なコードを吐くことがあるのを見つけちゃったよ
90 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:35:52.48 ] んではそのケース用peephole optimizationを.mdに追加してくれ
91 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 19:44:12.02 ] え、秘密にしてちゃ駄目かな?
92 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 23:33:57.20 ] 助長してくれるならいいことじゃないか
93 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 00:22:32.22 ] 転送先に書いて、転送先から同じレジスタに書き戻すことがある で、わかりますか?
94 名前:デフォルトの名無しさん [2012/01/06(金) 14:47:54.30 ] ターゲット書かないのはターゲット非依存ってことなのか、今日日x86に決まってんだろうがってことなのか
95 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:14:17.60 ] 複数archで確認してるよ、peephole2使って
96 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 22:17:08.34 ] 以下のようなコードでコンパイルは通るのですが 実行した時の表示が 1 1 のようになってしまいます。 1 2 になるつもりで書いているのですが 変数の受け渡しはどうすればいいのでしょうか? (円記号のところは本当はバックスラッシュになっています) #include <stdio.h> int test(a) { a = a + 1; return a; } int main() { int a; a = 1; printf("%d\n",a); test(a); printf("%d\n",a); return 0; }
97 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 22:35:35.37 ] a=test(a);
98 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 22:52:02.15 ] #include <stdio.h> void test(int *a) { *a += 1; } int main() { int a = 1; printf("%d\n",a); test(&a); printf("%d\n",a); return 0; }
99 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 03:10:33.49 ] Commit: RX: Add return pattern ttp://gcc.gnu.org/ml/gcc-patches/2012-01/msg00627.html gcc/function.cの HAVE_return HAVE_simple_return の場合分けが悪いだけなのにね ここに書いても無駄だと思うけど、なんとなく
100 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 14:29:13.06 ] >>99 特定アーキテクチャの問題で共通部分に手を出すのはむずいのでふ
101 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 15:20:26.40 ] 特定アーキテクチャの問題 じゃあねえよ、ど素人が
102 名前:デフォルトの名無しさん [2012/01/14(土) 14:19:50.12 ] >>101 んではRX以外に問題を起こしているアーキテクチャを挙げてくれ
103 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 17:37:33.78 ] 他のアーキテクチャはmdいじくって、回避してるよ どっちを修正すればいいかって話になるけど function.cの該当部分書いたのがイマイチだって感じかな?
104 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 17:46:01.66 ] archによってはわざとmakeでコケるような細工してあることが注意したほうがいいよ
105 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 18:23:50.79 ] make の段階でこけるならまだ良心的だなw
106 名前:96 mailto:sage [2012/01/22(日) 23:41:41.30 ] 遅くなりましてすみませんが ご回答いただいた方ありがとうございました
107 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 16:04:12.55 ] これからは礼の言葉はいらん
108 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 18:10:21.39 ] 対レジスタに関して演算結果で変化がないときは最適化してくれるけど 対メモリに対しては最適化されない時があるんだね、gcc
109 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 18:41:02.39 ] 頑張っても同じって場合なんじゃない?
110 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 18:46:57.74 ] レジスタ使い回しが出来る奴はあんまり影響がないけど メモリに依存したような奴は無駄なコードを吐いちゃうってことがある?ってことです
111 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 19:14:32.98 ] 最適化レベル6にしてるか?
112 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 19:28:33.24 ] aliasある疑いがある時はちゃんとメモリアクセスしないと仕方ねえしな。
113 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 20:01:52.41 ] 最適化レベル6ってどこのコンパイラのこと?
114 名前:デフォルトの名無しさん [2012/02/28(火) 20:25:22.47 ] THINK Cだろ
115 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 22:09:56.74 ] Linux 0.99とかその辺の話じゃないの?
116 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 22:19:55.95 ] ワシの最適化は108まであるぞ
117 名前:デフォルトの名無しさん mailto:sage [2012/02/28(火) 22:53:59.19 ] 内部的には3まででしょ、gcc -Oのあとの数字はなんでもうけつけるってだけで 最適化レベルっていっても細かなオプションが適時追加されるだけという
118 名前:デフォルトの名無しさん mailto:sage [2012/02/29(水) 09:17:44.33 ] やたらでかい数字に意味があったのってEGCS時代ぐらいじゃね?
119 名前:デフォルトの名無しさん [2012/02/29(水) 17:21:18.80 ] ぐらいだね
120 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 12:56:03.52 ] 4.7.0
121 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:15:56.76 ] gcc4.7を使ってみたくて自前ビルドで詰まったんだけど,質問はここでいいのだろうか. 場所が悪ければ誘導願いたい Ubuntu 11.10で,gcc-4.7.0-RC-20120302をビルドしようとしてる. 標準エラーの最後の方がこんなのだったんでリンクができてなくて止まってるのはわかるんだけど glibcやらbinutilsあたり,aptにあるそれらしいやつは違うようだった 入れるべきパッケージなりが足りてない? それともlocateで出てくる奴にシンボリックリンクでも貼ればいいものだろうか ↓エラーログ /usr/local/bin/ld: cannot find crti.o: No such file or directory /usr/local/bin/ld: cannot find -lc /usr/local/bin/ld: cannot find crtn.o: No such file or directory collect2: error: ld returned 1 exit status 解決法探すコツみたいなものも教えていただけるとありがたい ログが膨大で何に重点をおくべきかわからなくなってる
122 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 01:31:56.68 ] glibcのdevelみたいなのが入ってないような感じ、debian系はよー知らんけど 今のgccはビルドするときに必要なパッケージが増えてるから、ご注意を ttp://packages.ubuntu.com/oneiric/gcc
123 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 07:45:36.03 ] >>121 Ubuntuにもmultiarch問題があるのか。
124 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 08:35:59.30 ] 自分で答え書いてるやん
125 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:05:25.71 ] リナックスは問題だらけで使い物にならんよ。 リナックスがパッケージシステムが出来て糞になってる間に windowsは安定してみんな使うようになった。
126 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:54:37.12 ] >>125 のようなバカが使ってるよな
127 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 10:59:19.59 ] メーカーがドライバーを作らないからな。 偽者のドライバーでは機能制限が多すぎて 最高のパフォーマンスを出すことは到底不可能だからな。
128 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 11:05:01.38 ] 釣りにしてはネタが腐ってるような?
129 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 11:23:08.62 ] 寿司じゃないんだから・・・・ それを言うならエサでしょう。あいにっく 釣りっぽい発言には見えないが・・・
130 名前:121 mailto:sage [2012/03/08(木) 14:24:03.17 ] パッケージのgcc4.6は入ってるから,glibc系の依存してるパッケージは入ってるはず. /usr/libとかに勝手に作っちゃうと先々何か入れるときに衝突しそうで避けてたんだけど /usr/libにあるはずのものが/usr/lib/i386-linux-gnuに入っちゃってるって記事を見て シンボリックリンク貼って走らせておいたら通ってたよ 現在make check中. ものすごく無理やりな感があって正しいのか不安だけど,とりあえず回答に感謝
131 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:27:12.80 ] multiarch問題は--libdir=/usr/lib/i386-linux-gnuで解決するんじゃないのか?
132 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 01:46:40.72 ] あ,まさにそれっぽい これか. --libdir=dirname Specify the installation directory for object code libraries and internal data files of GCC. The default is exec-prefix/lib. 勝手に作ったシンボリックリンク外してやってみる
133 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:22:39.29 ] うまくいかないな configureに--libdir=/usr/lib/i386-linux-gnuやら --libexecdir=/usr/lib/i386-linux-gnuやらつけて 何回か試してみたけど見に行ってくれてないみたい ldが探す場所ってld.so.confが読んでる奴じゃなかったっけ. こっちに/usr/lib/i386-linux-gnuも入ってるのだけど, ldconfig -pに出てこないから探しに行ってないんだよな ここが解決すればよさそうな気もするのだけど. このあたりの話題はスレ違いだろうか
134 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:25:33.52 ] 64bitなgcc作りたいの? なら、32bitな環境入れとかないとコケるような
135 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:34:00.66 ] いや,そも全部32bit環境…のはず. i386,i686はアーキテクチャの差であってbit数は関係ないよね?
136 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:37:31.73 ] どこでコケてるのか、文章だけじゃ、わからないよ rpmなら、specファイル見たらって言えるんだけど
137 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 22:56:36.35 ] あ,出てるエラーは>>121 です ldが/usr/lib/i386-linux-gnu/を見ずに/usr/libまでしか見てないらしくて crti.oとかが無いと言われる /usr/libから手動でシンボリックリンクを貼ってみたら一回通ったけど, そうじゃなくてオプションでそちらを見る方法があるなら知りたい 直前のコマンドは引数多すぎて何をしてるのかよくわからないけど (ビルドしてるディレクトリ)/gcc/xgcc のようです
138 名前:デフォルトの名無しさん mailto:sage [2012/03/09(金) 23:57:50.14 ] なんかまだ具体性欠いてるきがするので追記. gcc4.7.0RCのmake中,>>121 のエラー そのあとの出力は以下,直前のコマンドは貼れないくらい長いものでxgccを起動してるらしい make[3]: *** [libgcc_s.so] エラー 1 make[3]: *** 未完了のジョブを待っています.... make[3]: ディレクトリ `($HOME)/build/gcc-4.7.0-RC-20120302/build/i686-pc-linux-gnu/libgcc' から出ます make[2]: *** [all-stage1-target-libgcc] エラー 2 make[1]: *** [stage1-bubble] エラー 2 make: *** [all] エラー 2 make[2]: ディレクトリ `($HOME)/build/gcc-4.7.0-RC-20120302/build' から出ます make[1]: ディレクトリ `($HOME)/build/gcc-4.7.0-RC-20120302/build' から出ます ---ここまで--- 自分で判断できることと知りたい内容は>>137 の内容.
139 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:03:21.81 ] --disable-bootstapつけてやってみるとか、適当だけど 自分もその辺でハマった口だけど、 build.log見たりとか コケたところを部分的に手動でやってみたりとか gccのビルドって、自力でやるのがだんだん難しくなってる、自分的には 4.6あたりで出来るか試してみるのも、ひとつの手
140 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:48:37.07 ] そりゃ、野良のldをmultiarch対応せずに使っているなら見ねーよな
141 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:56:54.52 ] いろんなアーキテクチャに対応するために /usr/libにあったものを/usr/lib/(アーキテクチャ名)に移動してあるものがあって ldもmultiarchに対応したものを指定してやらないとならない,ってことか ldはbinutilsに含まれるってことで合ってる? binutilsも新しいもの入れたつもりだけど,古いの呼んじゃってるかもしれないから そのあたり調べてみる
142 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 00:58:53.88 ] 本当にバカだな 意味が分からないなら、ubuntuのbinutilsつかってみろ それで解決
143 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 01:03:33.54 ] Debianのgcc-4.7をリビルドして使おうとしないところが、頑なな奴だな。
144 名前:デフォルトの名無しさん mailto:sage [2012/03/10(土) 01:26:26.28 ] >>142 Ubuntu,もしかしたらDebianからかもしれんけど ディストリビューション特有の問題でそれに対応したのがちゃんと用意されてるから 素直にそれを使え,でいいんだろうか とりあえず自分で入れたbinutils削除してld -vでfor Ubuntuの文字を確認してから もう一度make中 >>143 Linux使い始めてそう経ってないから,常識をわかってないところは多々あると思うんで そういうところこそ聞きたかった 4.7使いたいだけならgnuの素のソースだけじゃなくて, Debianから試験的パッケージ出てたんだね だめならこっち試してみる
145 名前:デフォルトの名無しさん mailto:sage [2012/03/11(日) 00:02:07.11 ] --- a/src/gcc/config/i386/t-linux +++ b/src/gcc/config/i386/t-linux @@ -3,3 +3,5 @@ # t-slibgcc-elf-ver and t-linux SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver \ $(srcdir)/config/i386/libgcc-glibc.ver + +MULTIARCH_DIRNAME = i386-linux-gnu
146 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 23:22:47.12 ] GCC 4.7.0 released [2012-03-22]
147 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 01:22:03.60 ] __transaction_atomic の使い方がわからん 中に出てくる変数全部アトムボーイになるの?
148 名前:デフォルトの名無しさん [2012/03/25(日) 01:32:10.51 ] 超高速にシンタックスチェックだけしてくれるモードとか無い?
149 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2012/03/25(日) 01:40:49.49 ] lint 使えよ。
150 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 11:27:59.90 ] >>148 -fsyntax-only
151 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 21:53:44.63 ] 何の処理もせず、時間稼ぎをしたいとき、どのような方法がありますか? 例えば、キー入力を受け付けてから、5秒あけて、入力された内容を表示するという場合です
152 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 21:54:50.20 ] sleep(5);
153 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 22:58:58.43 ] >>147 gcc/testsuite/c-c++-common/tm/trxn-expr-2.c
154 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 23:48:00.43 ] >>153 __transaction_atomic (a+b+c); これがどう働くのかを聞いてるんだよ・・・
155 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 00:25:25.52 ] >>154 噛み付かれても、俺もわからんのだけど gcc gcc/testsuite/c-c++-common/tm/trxn-expr-2.c -S -fgnu-tm -O2 でもやって、自力で答え見つけたら なんとなく、ポインターアクセス経由でやってるだけな感じだけど (思ってる答えとは違うかもね)
156 名前:デフォルトの名無しさん mailto:sage [2012/03/26(月) 17:18:46.67 ] gcc (GCC) 4.8.0 20120316 (experimental)
157 名前:デフォルトの名無しさん [2012/03/27(火) 15:41:50.42 ] macportで入れたgcc46で gcc-mp-4.6 -march=corei7 -E -v - </dev/null 2>&1 | grep cc1 としても、>.75のようではなく -fPIC -mmacosx-version-min=10.6.8 -march=corei7 -m64 としかででないのですけど、march=corei7の効果はないということでしょうか? corei7をcorei7-avxやcore2にしてもどうようです。nativeにしたときだけ>>75 のようにでてきます。
158 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:00:44.76 ] だって明示的にCPU指定したら命令セットは自明だろ キャッシュサイズは個々に違うから指定されないわけで
159 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:31:02.63 ] そうか。d ということは、corei7でmarch=nativeやmarch=corei7を使うと、 mfpmath=sseを使う意味はないという理解で大丈夫ですか?
160 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 13:32:02.99 ] >>159 定義済みマクロがあるやつは cpp -march=core2 -dM < /dev/null | grep SSE とかで分かるな
161 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 18:27:01.41 ] 混乱中 manを読むと、-mavxは MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,SSE4.2 and AVXをサポートしているから 配布目的でなければ、-mmmxや-msseなどは付ける必要ないんだろうか? >>75 を見ると、-march=nativeをしたときには-mavxが自動的につくけど、 march=corei7-avxでは-mavxは自分で付けなければいけないということなのか? うむむむ
162 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 22:26:55.80 ] >>161 avxが有効だと__AVX__が1に定義されるから>>160 でそれを調べたら分かるのでは
163 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 22:33:05.99 ] >>161 -marchや-mtuneは-msseや-mavxみたいなオプションのセットという認識だけどな nativeの場合はプロセッサのフラグを呼んで有効になっている機能を使おうとするから msseみたいな物が個別につくのでは 例えばKVMとかで仮想CPUの場合に、物理CPUにある機能が一部無効になってると個別のオプションが変わったりする
164 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 23:01:18.78 ] ぶっちゃけアセンブリ出力を見たらどうか
165 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 23:51:52.73 ] {"corei7-avx", PROCESSOR_COREI7_64, CPU_COREI7, PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 | PTA_SSSE3 | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AVX | PTA_CX16 | PTA_POPCNT | PTA_AES | PTA_PCLMUL}, if (processor_alias_table[i].flags & PTA_AVX && !(ix86_isa_flags_explicit & OPTION_MASK_ISA_AVX)) ix86_isa_flags |= OPTION_MASK_ISA_AVX;
166 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 12:06:21.03 ] SSEにしろAVXにしろ、OSが明示的に許可してないと使えないんだから 勝手に生成されたらまずいんでね
167 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/03/29(木) 12:20:20.92 ] 自分で指定しておいて勝手にとは如何に
168 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 10:04:51.69 ] gcc -Q --help=target -march=corei7-avx でわかるね
169 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 15:45:06.79 ] 現在時刻を端末上で、 ○時○分○秒 と表示させるにはどのような関数があるでしょうか? 環境はlinuxです。
170 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 16:25:22.33 ] info gcc そんな機能あるのか?
171 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 16:38:51.56 ] >>169 このへんから ttp://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/settimeofday.2.html
172 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 17:14:32.47 ] >>170 若干ずれるがcppに頑張っていただけば #include <stdio.h> int main(void) { puts(__TIME__); }
173 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 17:53:35.07 ] >>172 なるほど、それをcppの代わりにインストールすればいいのか。
174 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:31:19.31 ] >>171 もうこんなの使うのやめなよ・・・
175 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:35:48.24 ] >>174 最近の事情はよー知らんので教えて欲しいな、どこ見りゃいいの?
176 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:50:52.52 ] >>175 下の方だよ
177 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:52:15.40 ] >>175 POSIX.1-2008 marks gettimeofday() as obsolete, recommending the use of clock_gettime(2) instead. って書いてある。
178 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 23:54:59.95 ] >>177 ありがと
179 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/10(火) 09:02:00.63 ] clock_gettimeは致命的な遅さ
180 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:27:36.86 ] >>179 じゃあどうすりゃいいんだよ!
181 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 00:50:43.92 ] どうやって測ったのか知らんけど 遅いっていうのなら、glibcのソース見て、自前で実装するしかないでしょ
182 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 07:08:36.38 ] get_wild関数で変数名がxyzです。 何が起こるでしょうか?
183 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 07:31:21.19 ] >>181 つまりclock_gettimeは使わないという結論か
184 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/11(水) 14:43:38.38 ] >>183 time関係は遅いのかもしれんけど、今時の実行環境ならさほど問題になるようなことはない気がするけど 何をするかによっても関数の実行時間が問題になるかは変わってくるからね
185 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 01:36:44.09 ] >>182 アスファルトにタイヤを切りつける
186 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:34:06.48 ] >>182 プログラム「都市狩り」起動
187 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 12:35:16.88 ] >>182 プログラム「都市狩り」起動
188 名前:デフォルトの名無しさん mailto:sage [2012/04/12(木) 22:37:53.88 ] >>182 恋人が交通事故死します。
189 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:17:28.30 ] 冴羽遼は関係無いだろ
190 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:46:36.79 ] じゃあ何ならいいんだ
191 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 11:29:23.10 ] gccをビルドすると/usr/lib/に妙なperlかpythonのスクリプト(忘れた))が生成されるけど、あれ何するためのものなの?
192 名前:age mailto:sage [2012/05/03(木) 11:31:53.03 ] GCC4.7でIntelコンパイラーのように__Cilk命令がマージされたような話を聞いたけど、これ本当にマージされてるの? どうやったら動くの?何か特殊なビルドオプション等が必要?
193 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 00:57:31.93 ] ?-gdb.py 消しても問題みたいだけど
194 名前:デフォルトの名無しさん mailto:sage [2012/05/04(金) 01:00:40.04 ] 逝ってるなコンパイラは逝ってるなことやってるんだ
195 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 15:53:57.15 ] 4.7.1
196 名前:デフォルトの名無しさん mailto:sage [2012/07/04(水) 18:10:06.71 ] system関数を使ってmpg123を呼び出し、 mp3ファイルを再生しようとしています。 そして、再生の途中で再生を終了させるにはどんな方法があるでしょうか? 端末からコマンドラインで直接打つ場合はctrl+cで止められますが、 ctrl+cと同じことをgccでやろうとしたらどうすればいいのでしょうか? 環境はlinuxです。
197 名前:デフォルトの名無しさん mailto:sage [2012/07/04(水) 18:37:19.91 ] systemはやめてfork-execでpidを得た後killすればいい
198 名前:デフォルトの名無しさん mailto:sage [2012/07/05(木) 12:04:38.02 ] >>196 popenとmpg123 -Rでやれば
199 名前:デフォルトの名無しさん mailto:sage [2012/07/24(火) 01:02:18.16 ] kill `ps | grep mpg123 | awk '{print $1;}'` ってやるシェルスクリプトをsystemすればいいんじゃね?
200 名前:デフォルトの名無しさん [2012/07/27(金) 08:18:19.48 ] os xをマラにしたらgccが消えてしまいました。 どこへ行かれたのでしょうか?
201 名前:デフォルトの名無しさん mailto:sage [2012/07/27(金) 09:17:44.29 ] >>200 XcodeのメニューPreferencesからDownloadsタブのComponentsにあるCommand Line Toolsをインストールしれ
202 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 02:08:45.92 ] gcc/config/i386/i386.cの distance_non_agu_define_in_bb の関数が ヌルポで落ちることがあるぜえ
203 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 14:31:42.91 ] つ bugzilla
204 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 15:01:23.80 ] 自力で何とかしたから、そこまでやる気なし
205 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 16:25:58.44 ] ちょっwww
206 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:12:11.88 ] こうして不具合は残ったままになるのでした。おしまい。
207 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 17:27:52.03 ] たまに、 引掛け? みたいなことしてることあるし
208 名前:デフォルトの名無しさん mailto:sage [2012/08/17(金) 18:30:39.29 ] ヌルポでコンパイルが止まるだけ 君には見つけられるかって感じだからね
209 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 13:29:25.72 ] gcc4.7.1+pthreads_win32でスレッドモデルposixでビルドすると、c++のプレコンパイルヘッダのmakeでこけます。 operator<でエラーで、どうやらptw32_handle_tが構造体だから比較できないってことらしい。 どなたか対処法などご存知ではないでしょうか?
210 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 13:35:58.92 ] クラスにする
211 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:02:52.41 ] おそらく文脈的にoperator<なんていらん所だろう コンパイラが変な解釈してるだけと思う
212 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 15:43:14.51 ] そっちかよw pthreads_win32をやめるのがいいかと。
213 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 20:40:29.10 ] >>212 無茶言うなよ・・・
214 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 21:22:45.78 ] ここの3番 ttp://sourceforge.net/mailarchive/message.php?msg_id=26533137
215 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 22:49:01.09 ] 楽しようとして、ハマりましたって、オチにならなきゃいいけどね
216 名前:デフォルトの名無しさん mailto:sage [2012/08/18(土) 23:08:57.58 ] >>214 サンクスです。 さっそく、試してみます。
217 名前:デフォルトの名無しさん mailto:sage [2012/08/30(木) 20:29:33.41 ] コンバイン1,2,3 状態 ありがと
218 名前:デフォルトの名無しさん mailto:sage [2012/09/03(月) 03:13:46.95 ] 単独行動できる仕掛けが
219 名前:デフォルトの名無しさん mailto:sage [2012/09/21(金) 03:07:46.70 ] 4.7.2
220 名前:デフォルトの名無しさん [2012/10/11(木) 22:53:24.71 ] ほしゅあげ
221 名前:デフォルトの名無しさん mailto:sage [2012/11/09(金) 02:16:10.23 ] ビルド時に内部エラーが出るとバックトレースしてくれるようになってるな
222 名前:デフォルトの名無しさん mailto:sage [2012/12/17(月) 08:18:28.87 ] forの中のx++をx+1とかx+2にすると無限ループになってしまいます。 x++以外にしたいときはどう書くのでしょうか? linuxで4.4.5です(円記号は実際にはバックスラッシュです) #include <stdio.h> int main() { int x; for(x=0; x<10; x++) { printf("%d\n",x); } return 0; }
223 名前:デフォルトの名無しさん mailto:sage [2012/12/17(月) 08:20:09.02 ] >>222 x+=1 とか x+=2 とかにすればいいよ。 gcc 特有の事情でない話は C スレに行った方がいいよ。
224 名前:デフォルトの名無しさん mailto:sage [2012/12/18(火) 17:31:31.01 ] x = x++; 以来の衝撃を受けた気がする
225 名前:デフォルトの名無しさん mailto:sage [2012/12/19(水) 22:42:12.03 ] 沖林正紀 を超えたかも知れない
226 名前:デフォルトの名無しさん [2013/01/13(日) 11:32:27.35 ] mesてsh3のローカルバージョンなんだが、setjmp.hが無い。 longjmpの代わりになる方法とかないか?
227 名前:デフォルトの名無しさん mailto:sage [2013/01/13(日) 23:44:34.43 ] >>226 newlibあたりからもらってくればいいんでないかい
228 名前:デフォルトの名無しさん mailto:sage [2013/01/13(日) 23:56:49.15 ] gcc の新しい CPU 向けのポートの話はここでいいの?
229 名前:デフォルトの名無しさん [2013/01/14(月) 04:45:24.75 ] >>228 yes
230 名前:デフォルトの名無しさん [2013/01/14(月) 17:31:06.90 ] >227 なるほど。 とはいったものの、どうしたらいいのやら。 newlibのソースって当然ASMだろうな。mesのGCCですんなりコンパイルできる だろうか?
231 名前:デフォルトの名無しさん mailto:sage [2013/01/14(月) 18:00:13.06 ] >>229 あれはふつーのsh-coffだろう 何も考えずにプロジェクトに入れちまえ
232 名前:231 mailto:sage [2013/01/14(月) 18:00:54.52 ] すまん s/229/230/
233 名前:デフォルトの名無しさん mailto:sage [2013/01/14(月) 18:35:07.31 ] 何を悩むことがあるのか分からん。 とりあえずnewlibをコンパイルしてみればいいじゃないか。SH4ということにして。
234 名前:デフォルトの名無しさん mailto:sage [2013/01/16(水) 01:59:09.30 ] newlib/libc/machine/sh/setjmp.S
235 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:02:32.76 ] GDBについて聞きたいんだが、ファイルポインタなどで外部ファイルからパラメータを読み込むプログラムなんだけど デバックする場合、エラーは起きる?それともこれがエラーの原因なんかな
236 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:13:10.35 ] 日本語でok
237 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:13:54.81 ] うーん、ダメやなGDBうまくわかってないから伝えられないな すまんな
238 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:16:38.64 ] ニシくんテクとして壊れたパーツもあえて保持するというテクがあるんやで
239 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:17:21.02 ] gbk
240 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:17:26.27 ] GDBの問題じゃないからね、それ
241 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:27:31.25 ] プログラム的におかしいってことなんかな コンパイル時にエラーは言われないんだけど、実行結果でエラー言われるんだよね もう一度確認してみますわ
242 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:31:35.73 ] scanfの使い方がおかしいだけでしょ &のつけ忘れとか
243 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:33:52.87 ] エスパーすげえな SetFilePointerとデバッガで挙動が変わるのと何の関係が?としか思えなかったわ
244 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:47:35.79 ] 書き方がおかしな所はコンパイル時にわかるけど 実行時の問題まで探してくれてるわけじゃないからね
245 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 21:59:32.49 ] エスパーな質問なのに答えてくれてほんとありがとう scanf確認したんですが&は一応ついてました もう少し色々お聞きしたいのですが、C言語の話題になってしまいそうなのでC言語スレで聞いて見ようと思います GDB自体は実際の実行と同じように動作すると分かって良かったでうs
246 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 00:45:18.92 ] GCCVer3の最終版使うのとGCC最新版(Ver4)使うのではどっちが安定なんだろうか
247 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 00:56:08.11 ] 対応したarchなら、コンパイルという動作はどっちも安定してるんじゃね
248 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 09:26:59.11 ] 4の安定版使え。
249 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2013/01/22(火) 09:44:34.52 ] コンパイラ単体で見れば歴史の長い3の方が枯れていると言えるかもしれないけど、 そう単純なものでもないんだよね。 C++ABI がちょっと違ったりするので、今更3を使うのは問題の種になると思う。 と言うわけで私としては4を推す。
250 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:15:33.81 ] short-enum な --taret=arm* な 4.6.4 で, short-enam な --hist=arm* な 4.6.4 を作ろうとすると 色々まずいっぽいんだが, 既知の事実ですか?
251 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:24:56.18 ] コンパイル時にしてするものでビルド時に指定するもんじゃないような
252 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:36:24.41 ] >>251 やっぱそうなるか じゃあ libgcc だけ, 単独に short-enum にできる安直な方法ってある?
253 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:40:44.15 ] 4.7だと libgcc/config/arm/t-linux に仕込めばいいような
254 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 20:43:16.98 ] もしくは make CFLAGS_FOR_TARGET="-g -O2 -fomit-frame-pointer" CXXFLAGS_FOR_TARGET="-g -O2 -fomit-frame-pointer" な感じか?
255 名前:デフォルトの名無しさん mailto:sage [2013/03/06(水) 23:53:27.37 ] たのもう gcc 4.7.2 のコンパイルでつまづいてる (gmp 5.1.1、mpfr 3.1.1、mpc 1.0.1 はコンパイルできた) ../configure --enable-languages=c,c++ --enable-bootstrap --enable-shared --enable-threads=posix \ --enable-checking=release --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object \ --disable-dssi --disable-multilib --with-gmp-lib=/usr/local/lib64 --with-mpfr-lib=/usr/local/lib64 \ --with-mpc-lib=/usr/local/lib64 --without-ppl --with-tune=generic の後の make 実行したら mkdir -p -- x86_64-unknown-linux-gnu/libgcc のあるフェーズで、 checking for suffix of object files... configure: error: in `/w/gcc/gcc-4.7.2/build/x86_64-unknown-linux-gnu/libgcc': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. とか言われた x86_64-unknown-linux-gnu/libgcc/config.log には configure:3344: /w/gcc/gcc-4.7.2/build/./gcc/xgcc -B/w/gcc/gcc-4.7.2/build/./gcc/ -B/usr/local/x86_64-unkn own-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gn u/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -V >&5 xgcc: error: unrecognized command line option '-V' とか出てるんだけど、何が悪いかわかる人いたら教えてくらさい ただし英語のドキュメントは読めない
256 名前:デフォルトの名無しさん mailto:sage [2013/03/06(水) 23:56:04.33 ] ちなみに OS は CentOS 5.3 x86_64 でございますれば 他に補足の情報が必要であれば指摘ください
257 名前:デフォルトの名無しさん mailto:sage [2013/03/07(木) 00:20:28.62 ] command line option とみなされてるのが問題なんだろ shell 変えてみるとか
258 名前:デフォルトの名無しさん mailto:sage [2013/03/08(金) 09:11:55.41 ] うーん、sh、csh、ksh、bash を試しましたが変化ありませんなあ・・・orz
259 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 02:46:26.94 ] -Vを消しちゃえばいいやん
260 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 13:30:08.59 ] >>255 同じような症状で --disable-libquadmath つけたら通った
261 名前:デフォルトの名無しさん mailto:sage [2013/03/11(月) 04:33:46.70 ] 'unrecognized' command line optionでxgccのエラーだぜ、ってことで>>257 はおかしい xgccってのはまさにいま作ってる最中のgccで、そいつが-Vを受け付けてない(手元のgccで試したら確かに4.7系は-Vを受け付けない) -Vの出力から'compute suffix of object files'をしようとしてるんだから>>259 もおかしい エラーはlibgccのconfigureで起きてるっぽいので>>260 もどうかなあ つーことで、configureのその行の前後にxgcc -B中略 -Vの結果を加工して suffix of object files(たぶん.o)をどっかの変数に入れてるところがあるはずなんで その辺書き換えて直接.oをセットしてしまえばいいと思う 環境差かなんかで普通入り込まない過去のgcc互換かなんかの分岐に入ってしまってるんだろう と予想、外れてたらごめん
262 名前:デフォルトの名無しさん mailto:sage [2013/03/11(月) 05:49:25.22 ] たぶん、glibc-develあたりのパッケージが入ってないような # yum groupinstall "Development Tools" をやれば、いいような
263 名前:257 mailto:sage [2013/03/11(月) 07:03:51.09 ] >>262 漏れも最初にそう思ったんだけど、 わざとボケてみたんだ。 ごめん。
264 名前:デフォルトの名無しさん mailto:sage [2013/03/11(月) 09:38:08.17 ] 俺も俺も
265 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 14:29:39.93 ] すいません、これでできました su mkdir /w; mkdir /w/gcc; cd /w/gcc wget ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.7.2/gcc-4.7.2.tar.bz2 wget ftp://ftp.gmplib.org/pub/gmp/gmp-5.1.1.tar.bz2 wget www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.bz2 wget core.ring.gr.jp/pub/GNU/mpc/mpc-1.0.1.tar.gz tar xvfj gcc-4.7.2.tar.bz2 tar xvfj gmp-5.1.1.tar.bz2 tar xvfj mpfr-3.1.2.tar.bz2 tar xvfz mpc-1.0.1.tar.gz mkdir gcc-4.7.2/build mkdir gmp-5.1.1/build mkdir mpfr-3.1.2/build mkdir mpc-1.0.1/build cd gmp-5.1.1/build ../configure --enable-cxx make #make install cd ../../mpfr-3.1.2/build ../configure make #make install cd ../../mpc-1.0.1/build ../configure make #make install cd ../../gcc-4.7.2/build ../configure --enable-languages=c,c++ --enable-cxx --with-newlib --disable-multilib --enable-threads=posix --with-tune=amdfam10 export LD_LIBRARY_PATH=/usr/local/lib64 make #make install
266 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 15:08:52.01 ] あ、↑の #make install は make install でございますれば で、 ../configure --enable-languages=java --with-newlib --disable-multilib --enable-threads=posix --disable-bootstrap とするとコケて、どうしても Java コンパイラが作れないです libtool: compile: /w/gcc/gcc-4.7.2/build_java/./gcc/xgcc -shared-libgcc ---snip--- java/net/.deps/natVMInetAddress.Tpo -c java/net/natVMInetAddress.cc -fPIC -DPIC -o java/net/.libs/natVMInetAddress.o java/net/natVMInetAddress.cc:42:52: error: declaration of C function ‘int gethostname(char*, int)’ conflicts with In file included from java/net/natVMInetAddress.cc:12:0: /usr/include/unistd.h:845:12: error: previous declaration ‘int gethostname(char*, size_t)’ here make[3]: *** [java/net/natVMInetAddress.lo] Error 1 Web 検索しても、なぜかコケて回避できないみたいな記述があったような無かったような
267 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 15:44:56.69 ] あー、 ../configure --enable-languages=java --disable-multilib --disable-bootstrap にしたらコンパイルできますた が、実際に .java ファイルをコンパイルしようとすると gcc: error trying to exec 'ecj1': execvp: No such file or directory とか怒られる ググったらこんな感じ barutan.s296.xrea.com/cgi-bin/tdiary/?date=20100220#p04 お手上げでしょか?
268 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 16:31:58.39 ] ecj1って、eclipse関連のパッケージみたいだね。 https://launchpad.net/ubuntu/+source/ecj/3.5.1-6
269 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 16:41:06.65 ] GCJ使うのが目標だったのね。 ディストリビューションのspecファイル参考にするといいんじゃないかな。
270 名前:デフォルトの名無しさん mailto:sage [2013/03/20(水) 09:53:14.28 ] 4.8.0リリース?
271 名前:デフォルトの名無しさん mailto:sage [2013/03/20(水) 19:02:05.70 ] リリースアナウンス出てないからまだだろう
272 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 12:32:55.08 ] gcc 4.8.0をmakeしようとしたらこんなの出ました。 この前にmakeをビルドしたのですが、makeのビルドに失敗したって意味でしょうか? www.07ch.net/up2/src/lena8828.png
273 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 16:35:57.64 ] makefileの1〜6行目を晒すとか
274 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 16:42:10.00 ] makeで始める行はmakeコマンドが出力してる。[n]はネストの深さ。 エラーが起きているのはシェルにコマンド行で渡して実行させているコード。 EOFが出てるのは、Win32上で有名な > [Please ignore a syntax error on the next line - it is intentional] じゃないんだな。この部分は出てないので。
275 名前:デフォルトの名無しさん mailto:sage [2013/03/21(木) 19:49:40.74 ] www.07ch.net/up2/src/lena8830.png すみません。今見たらbuild/libiberty/config.logにNo such file or directoryと書いてありました。 ぐぐってみます。 ありがとうございました。
276 名前:275 mailto:sage [2013/03/22(金) 11:21:05.10 ] しつこくてすみません MinGWにpthreadsをインストールしてgcc 4.8.0をコンパイルしようとしたのですが、sys/systemcfg.hが無いといわれて ググったのですが、見当たらないのでwinpthreadsをコンパイルしようとしたのですが、makeでエラーになります。 www.07ch.net/up2/src/lena8836.png configureもmakeも改変せずにビルドしているのですが、makeが存在していないファイルを作ろうとしていてmakefileに問題があるのでしょうか?
277 名前:デフォルトの名無しさん mailto:sage [2013/03/22(金) 13:45:00.07 ] windowsでは無理
278 名前:デフォルトの名無しさん mailto:sage [2013/03/23(土) 01:57:39.27 ] GCC 4.8.0 released [2013-03-22]
279 名前:275 mailto:sage [2013/03/23(土) 10:20:20.80 ] しつこくてすみません make[1]: *** `src/libwinpthread_la-barrier.lo' に必要なターゲット `src/.dirstamp' を make するルールがありません. 中止. make: *** [all] エラー 2 となるんですがmakefileの該当部分は libdummy.la: $(libdummy_la_OBJECTS) $(libdummy_la_DEPENDENCIES) $(LINK) $(libdummy_la_OBJECTS) $(libdummy_la_LIBADD) $(LIBS) src/$(am__dirstamp): @$(MKDIR_P) src @: > src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/$(DEPDIR) @: > src/$(DEPDIR)/$(am__dirstamp) src/libwinpthread_la-barrier.lo: src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) これでは.dirstampは作れていないのでしょうか?
280 名前:275 mailto:sage [2013/03/23(土) 10:27:04.93 ] くっつけるerr.logを間違えました上の部分のエラーログは process_begin: CreateProcess(NULL, /bin/mkdir -p src, ...) failed. make (e=2): 指定されたファイルが見つかりません。 make[1]: *** [src/.dirstamp] エラー 2 make: *** [all] エラー 2 こちらです
281 名前:275 mailto:sage [2013/03/23(土) 10:57:48.87 ] cd src touch .dirstamp cd .deps touch .dirstamp したらmakeできました お騒がせしました
282 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 12:34:35.28 ] 4.8で動かなくなる奴たくさんありそうだな 普通の実行順序で考えると動きそうだし たまたまローカル変数ですべて収まってたから、 過度に最適化されたのかな?
283 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 12:48:29.38 ] SPECのコードが壊れた話? C言語は高級アセンブラで、思った通りの機械語コードを吐いてくれる、 なんてのが昔話だと、いい加減みんな認識すべきなんだな。 現代のC言語は、最適化オプション付けていて、未定義を踏んでたら 悪魔と契約してでも最適化を掛けてくるもんだ、と思うべき。
284 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 12:53:58.03 ] 日本語でどうぞ
285 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 13:01:18.08 ] 壊れるようなコードを書いているやつが悪い
286 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 13:26:59.99 ] >>284 このスレでこの程度のジャーゴンもわからないとか。
287 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 13:55:39.89 ] >>286 単語の問題ではなく文法の問題では?
288 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 14:46:33.36 ] brokenな日本語でも日本語の話者ならば補って理解できる。
289 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 21:04:51.78 ] 実行される可能性がある未定義動作のコードが一行でも混じっていれば そのプログラムは起動直後からソースコードを一切無視してどういうふるまいをしても構わない。 過度の最適化ではない。
290 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 22:16:03.70 ] >>286 底辺職種に従事している人が多いからね そんな奴は脳レベルが低すぎてbrokenな日本語は理解不能
291 名前:デフォルトの名無しさん mailto:sage [2013/03/25(月) 23:31:42.31 ] 罵倒遊びも飽きた
292 名前:デフォルトの名無しさん mailto:sage [2013/03/28(木) 12:01:59.57 ] 4.8、動かない以前にビルド通らんのが出てきたぞ バージョン上がる度に型チェック厳しくなる一方だぜ
293 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 05:44:55.99 ] gcc.gnu.org/projects/cxx0x.html Rvalue references for *this : GCC 4.8.1
294 名前:デフォルトの名無しさん [2013/04/06(土) 15:49:25.58 ] fast-mathオプションをつけるとisnanが機能しなくなるのだけど、何かいい手はない?
295 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 16:06:06.33 ] そのファイルだけfast-mathを外してコンパイルする。 と、どうなるか試してほしい。
296 名前:デフォルトの名無しさん [2013/04/06(土) 16:45:32.27 ] fast-mathつけなければ大丈夫。 fast-mathをつけると、isnan以外にも、a != aで判定する方法もダメ。 何かいい方法ないかな
297 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 16:57:51.17 ] -ffast-math をばらして必要なオプションだけを指定してみたら? -ffast-math Sets -fno-math-errno, -funsafe-math-optimizations, -fno-trapping-math, -ffinite-math-only, -fno-rounding-math, -fno-signaling-nans and fcx-limited-range.
298 名前:デフォルトの名無しさん mailto:sage [2013/04/06(土) 22:18:43.85 ] -ffast-math -fno-finite-math-only の併用でok
299 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:00:04.38 ] 4.8ビルドしようとするとgccでintl-printと__printf__が不明と怒られる 仕方ないのでconfig.hに#include <libintl.h>を書き足すと>>255 と同じ事 言われて怒られる、しかしgmp等はインスト済み これってx64のライブラリ以外にx86のライブラリも必要って事なのかな?
300 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 22:29:24.61 ] コマンドラインまで >>255 と同じなら × --with-gmp-lib=/usr/local/lib64 ○ --with-gmp=/usr/local mpfr,mpc も同様
301 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 23:18:38.75 ] レスありがとう! んでも 64ビットのWindowsおよびgccだけSJLJ例外の32ビットベースのmultilibの バージョンについては#エラーがサポートされています。 って怒られた。。。ウチの環境はWin7x64、gccはTDM64です configureはこれ LIBS="-lintl -liconv " ../gcc-4.8-20130404/configure --prefix=/usr/gcc \ --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 \ --with-tune=generic --enable-threads=posix --disable-multilib --enable-static \ --enable-languages=c,c++,objc,obj-c++ --enable-libgomp --disable-sjlj-exceptions \ --with-dwarf2 --enable-version-specific-runtime-libs --disable-win32-registry \ --disable-werror --disable-nls --enable-lto --with-system-zlib \ --enable-libstdcxx-debug --enable-cxx-flags='-fno-function-sections -fno-data-sections' \ --enable-fully-dynamic-string --disable-libstdcxx-pch --disable-bootstrap \ --with-mpc-lib=/usr/tool/lib --with-mpc-include=/usr/tool/include \ --with-mpfr-include=/usr/tool/include --with-mpfr-lib=/usr/tool/lib \ --with-gmp-include=/usr/tool/include --with-gmp-lib=/usr/tool/lib \ --with-cloog-include=/usr/tool/include --with-cloog-lib=/usr/tool/lib \ --with-isl-include=/usr/tool/include --with-isl-lib=/usr/tool/lib --disable-multilibを消しても、やっぱりx64云々で蹴られますた ってかconfigureのログ見てると、intl=ok, iconv=okって言ってるのになんで intlの関数が不明って言われるのかなあ。
302 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 23:45:08.36 ] 消すなら --disable-multilib ではなくて --disable-sjlj-exceptions だろjk あと、もし binutils を一緒にビルドしようとして、 gcc のフォルダ内に binutils/{なんやらかんやら} へのリンクを張ってるなら、 両者に共通のライブラリが、バージョン違って失敗するかも
303 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 00:07:40.47 ] 消したけどダメ。。 ターゲット・ホスト・ビルドのx86_64-w64を消さないとどうしても 「はぁ?x64?」みたいな事言われるので消して、それでもintlで文句言われて config.hに<linintl.h>書き加えてビルド進めるとlibgccで Assembler messages: Error: invalid instruction suffix for `push' アセンブラ関連のエラーだと思うんだけど、ターゲットをx86_64-w64にすると怒 られ、libintlで怒られ…gccサイトのQ&A見ても「我々は悪くない、文句言われる テメーが悪い」みたいな事書いてあるし。。。。 もうネルソン!
304 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 22:43:32.74 ] やっとでけたあああ 七誌さんそして>>300 ありがとう! 一応手順 gcc用のディレクトリを作成、binutilsをビルド→インストール gccをコンパイラのみビルドしてinstall-gcc ここでmsys上のmingwを今作ったgccに切り替え mingw-w64ランタイムをヘッダのみビルド→インストール ランタイムをビルド→インストール gccの残りをビルド→インストール 今まで通常使ってるmingwだけでビルドしようとしてたのが間違ってた?っぽい
305 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 22:49:25.32 ] なんだかよく分からなかったけど強引に潰したエラー、3件 1.↓って言われる i386/cygming.h:358:2: error: #error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported. i386/mingw32.h:101:2: error: #error DW2 unwind is not available for 64-bit. i386/cygming.h:358:2: error: #error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported. i386/mingw32.h:101:2: error: #error DW2 unwind is not available for 64-bit. i386/cygming.h:358:2: error: #error For 64-bit windows and 32-bit based multilib version of gcc just SJLJ exceptions are supported. i386/mingw32.h:101:2: error: #error DW2 unwind is not available for 64-bit. コメントアウト 2. intl_printが不明 config.hに<libintl.h>を書き足す 3. libstdc++-v3/include/bits/basic_string.hでエラー call googleで外人さんのパッチをクローン +++ ./libstdc++-v3/config/os/mingw32-w64/os_defines.h +#include <_mingw_mac.h> +#if !defined (__MINGW64_VERSION_MAJOR) || (__MINGW64_VERSION_MAJOR < 3) #define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1 +#endif 3は、なんだか公式のmingw32使えみたいな事言ってた気がするけど1.2が分からんち 特に2番、なんでヘッダを要求されるのか。公式になんか書いても怖い人しかいないよう な雰囲気なので聞けない。。。 グダグダ書いたけど結局は>>302 のbinutils云々がヒントになってビルド出来た、ありがとね
306 名前:デフォルトの名無しさん mailto:sage [2013/04/09(火) 23:22:10.38 ] 追記:libintlがぶっこわれてた 今までどうやってビルド通ってたんだろ・・・・・・・・・
307 名前:デフォルトの名無しさん mailto:sage [2013/04/10(水) 12:19:18.40 ] 馬鹿には無理
308 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 12:00:07.40 ] ネタじゃないので聞いてください。 一番最初のgccはどのようにコンパイルされたのですか?
309 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:04:09.04 ] 別のコンパイラを使う。UNIXのccとか。 歴史の話じゃなくて実用的な意味でどうするかといえば、 オフィシャルでバイナリのgccが配布されているのでそれを使う。
310 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:12:18.33 ] 最初のGCCはCで書かれていたわけでは無いらしい
311 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:13:20.52 ] ネタじゃないので聞いてください。 一番最初のccはどのようにコンパイルされたのですか?
312 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 13:25:22.63 ] 最初のコンパイラは機械語で書いた
313 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 14:56:44.41 ] 最初のコンパイラはA-0 Systemらしい。
314 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 18:04:08.51 ] gccをどうやってコンパイルするかを勉強してると そのあたりまで平然と遡らされるよな
315 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 18:20:46.26 ] Z80アセンブラをN88-BASICで実装しようとしたのは良い思い出…
316 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 23:18:45.40 ] >>311 > 一番最初のccはどのようにコンパイルされたのですか? 当時一般的に使われていた, Unix 上の PCC 互換コンパイラでコンパイルされたんだが, なんか問題あるの?
317 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 00:00:12.33 ] >>316 どこまで遡れるか大会だろ空気嫁よ
318 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 05:34:33.84 ] ネタじゃないので聞いてください。 一番最初のアセンブラはどのようにアセンブルされたのですか?
319 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 05:50:10.27 ] ネタじゃないならアセンブラスレで訊きましょう
320 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 10:08:15.61 ] 2chは優秀な技術者が議論する場所
321 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 10:54:15.95 ] >>318 ハンドアセンブル
322 名前:デフォルトの名無しさん mailto:sage [2013/04/14(日) 11:37:22.44 ] multilib有効にしてGCCビルドしたら、ライブラリビルドでldちゃんが 32ライブラリに64libを合体させてしまいまする export -m32 -L/lib32 とかにしても言う事を聞いてくれませぬ ググっても、バカには無理みたいな風潮 TDMとか、どうやってmultilibなGCCビルドしてるんだろ?
323 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 21:32:17.28 ] gccの2.95.3なんですが、 gccがコンパイルされたときの./configureに渡された設定など 調べる方法は無いでしょうか?
324 名前:デフォルトの名無しさん mailto:sage [2013/05/09(木) 02:22:37.84 ] gcc -vは? どうでもいいことだが、なぜそんな化石を使うのか聞いてみたい
325 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 15:12:42.53 ] gccで、以下のような情報を得るためのコマンドラインオプション、あるいは ツール・手段はありませんでしょうか? 知りたいのは、どういう過程でライブラリがリンクされているかです。 例えば、main.cでprintf()が使われている時、 (1) main.o には未解決のシンボル'printf'がある (2) 未解決シンボル'printf'を解決するため、libc.a 内の lib_a-printf.o をリンクした (3) さらに lib_a-printf.o には未解決のシンボル'vfprintf'がある (4) 未解決シンボル'vfprintf'を解決するため、libc.a 内の lib_a-vfprintf.o をリンクした (5) さらに lib_a-vfprintf.o には未解決のシンボル・・・・ : のような情報が得たいのです。 目的は、組み込み用でコードサイズ小さくしたい場合に、想定外のライブラリがリンク されているような場合、何が起点になっているかを調べるためです。 (例えば、標準入出力は使ってないのに標準入出力関係のライブラリがごっそりリンクさ れてしまう場合に、sprintf()→vfprintf()→・・・と、sprintf()を使っているのが原因 であることを知りたい) -Wl,--verbose は試してみましたが、ダメでした。
326 名前:デフォルトの名無しさん [2013/05/22(水) 15:23:31.68 ] man(2)
327 名前:デフォルトの名無しさん [2013/05/22(水) 15:25:10.67 ] lint
328 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2013/05/22(水) 16:31:27.29 ] >>325 スマートリンクを使った方がてっとりばやいんじゃね?
329 名前:325 mailto:sage [2013/05/22(水) 19:12:38.41 ] >>328 レス、ありがとうございます。 スマートリンクもコードサイズ削減に効果が無くはありませんが、(newlibは結構細かく ソースが分けてあるので)効果は小さいと思われます。 例えば、newlibの場合newlib内で使用する静的変数を(マルチスレッド対応等が容易なよ うに)_reent構造体にまとめてありますが、これをリンクするような関数を一つでも使用 してしまうと_reent構造体に関連する関数が多数リンクされ、コードサイズが肥大します。 これは(実行時に呼ばれることは無くても)未定義シンボル解決には必要であり、 -Wl,--gc-sectionsでは防止できません。 コードサイズの肥大の起因となるライブラリ関数が(質問に記述のように)特定でき、これ がごく少数なら、この関数を使用しないようにプログラムを書き換えてしまえ、という わけです。
330 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 19:16:10.03 ] gccじゃなくてリンカの仕事 例えばAppleのldなら-why_liveとかあるから、とりあえずman ld
331 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 19:58:13.29 ] 使ってる*.oをnmして未定義シンボルをリストして、 シンボルがどの*.aで定義されてるかnmして調べて、 *.aをar xして*.oにしてnmして、 以下収束するまで繰り返し。 多分機械的に出来るんじゃないか? Cの場合、使われる*.aは引数で与える必要があって、 最初から全リストが分かってるわけだし。
332 名前:325 mailto:sage [2013/05/22(水) 20:31:03.39 ] >>330 誤解を招く文章ですいません、ld(binutils)を含めてgccと書いていました。 -why_live(https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/ld.1.html) はまさに欲しているものでしたが、使用しているld(GNU ld version2.15 arm-elf/cygwin のクロス環境)には実装されていないようでした。 * ld.info(manがなかったので) * arm-elf-ld --help * sourceware.org/binutils/docs-2.15/ld/Options.html#Options で、why/live/chain/refferenceなどのキーワードで探してみましたが、同等のものは 見つけられませんでした。 >>331 はい、その方法(それを行うツールの作成)は最後の手段として考えています・・・
333 名前:デフォルトの名無しさん mailto:sage [2013/05/22(水) 21:59:40.34 ] ld --help --cref 相互参照表を出力する -Wl,--cref
334 名前:325 mailto:sage [2013/05/23(木) 12:04:25.97 ] >>332 ありがとうございます。 --crefで目的を達せそうです。
335 名前:デフォルトの名無しさん mailto:sage [2013/06/01(土) 20:00:59.98 ] cygwinで gcc 4.8.1 コンパイルしたけど、エラーが2つでてインスコできんわ・・orz
336 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 11:49:35.35 ] gcc -S -g で出力されるアセンブルコード中の.locの情報を 該当するCソースに置換するフィルタはどこかで公開してませんか?
337 名前:デフォルトの名無しさん mailto:sage [2013/06/02(日) 23:36:32.81 ] as --help -a[sub-option...] turn on listings Sub-options [default hls]: c omit false conditionals d omit debugging directives g include general info h include high-level source l include assembly m include macro expansions n omit forms processing s include symbols =FILE list to FILE (must be last sub-option) gcc -c -O2 hoge.c -Wa,-ahls=hoge.lst
338 名前:336 mailto:sage [2013/06/03(月) 10:32:13.74 ] >>337 ありがとう。それに-gつけたら出来ました。
339 名前:デフォルトの名無しさん mailto:sage [2013/06/13(木) 05:42:57.74 ] gcovの使い方の質問ここでしたらスレチですか?
340 名前:デフォルトの名無しさん mailto:sage [2013/06/13(木) 11:06:32.53 ] profとかcovはいいんじゃない?
341 名前:デフォルトの名無しさん mailto:sage [2013/06/14(金) 00:47:14.15 ] ではお言葉に甘えて。 カバレッジを調べるためgcovすると自分のソース以外の iostream.gcovとかも大量にできてしまいます。 これを指定のディレクトリ以外は生成しないようにできないものでしょうか? 今のところ-pをつけてファイルを生成し必要のないフォルダのものをrmで消してます。
342 名前:デフォルトの名無しさん mailto:sage [2013/06/14(金) 01:08:14.99 ] gcov --help -o, --object-directory DIR|FILE オブジェクトファイルを DIR 内または呼び出し用 FILE 内で検索する
343 名前:341 mailto:sage [2013/06/15(土) 01:10:38.28 ] >>342 使い方が間違っているのか期待した結果になりませんでした。 srcディレクトリに.h / .ccがあるので -o src と指定しましたがiostream.gcovは生成されました。 objディレクトリに .o があるので -o obj と指定すると obj/test.gcno:cannot open graph file といったエラーが表示されます。そこでobjにtest.gcnoをmvすると処理は通りますが 相変わらずiostream.gcovは生成されます。 ただlcovすると.gcovは消えるので気にしなければ済む問題かもしれません。
344 名前:デフォルトの名無しさん [2013/08/06(火) NY:AN:NY.AN ]
345 名前:デフォルトの名無しさん [2013/09/13(金) 23:40:52.15 ] プリプロセッサの話ってここで大丈夫?スレチだったら流して gccの-EオプションでCライクな言語のプリプロセスかけてるんだけど、そのマクロの記述で #define get_pi(data) (6'(data)<<3)って感じの記述してて、 これの ' の部分が文字データ記述の開始として扱われてdataが置き換わらないんだけど、対策ないですかね?
346 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:07:31.67 ] SystemVerilogかね? #define s ' #define get_pi(data) (6 s (data)<<3) 空白が入るけど動くよ。警告も出るけど。 規格上問題ないか、どのGCCバージョンでも動くかは分からん。
347 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:25:12.48 ] >>346 返信ありがとう御座います! 早速試したら出来ました。けどなぜ動くのかわからない… 因みに使ってるのNSLという言語です。ハードウェア記述言語なのは一緒ですかね
348 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:39:13.04 ] >>347 dataが置換された後に再走査されてsが置換されるから動く。 だから#define s ' が動けば、問題なく動く。
349 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 00:48:05.09 ] >>348 プリプロセッサってプロトタイプ宣言みたいに上から順に〜ってわけではないのか。一緒だと思ってました
350 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 04:44:31.37 ] gcc4.9のtrunk版、3ヶ月くらいプラグマバグでビルド出来なかったんだけどようやく修正された
351 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 10:36:33.97 ] >>349 いやいや、上から順で正しい。再走査はマクロ展開時の話だよ。 マクロ引数dataが展開された後に、その結果に対して再走査されて 普通の地の文と同じようにsがマクロ展開される。 最初のやつがうまく動かないのは、Cプリプロセッサは文字置き換えでなくて トークンを置きえるから。 (6'(data)<<3) は (, 6, '(data)<<3) という3つのトークンになってしまう。
352 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 13:34:26.01 ] プリプロセッサなんて自作しちゃいなよ
353 名前:デフォルトの名無しさん mailto:sage [2013/09/17(火) 16:30:56.00 ] 正確に標準に従ったcppを作るのは案外大変だぞ?
354 名前:デフォルトの名無しさん mailto:sage [2013/09/24(火) 00:04:00.29 ] >>345
355 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 10:16:18.31 ] dev/nullを出力先に指定するとscanfなどで入力した内容が表示されなくなるという噂を聞きました どのように指定すると良いか教えてください
356 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 10:35:57.62 ] >>355 入力した内容なら、必要に応じて"/dev/stderr"(stderr)にでも出力すればいいじゃん。
357 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 19:25:05.12 ] >>355 scanf を実行する前に標準出力を /dev/null につけかえるのでは、pipe(), pipe2() とかで?
358 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 19:39:51.62 ] >>357 意味不明
359 名前:デフォルトの名無しさん mailto:sage [2013/11/04(月) 21:46:42.94 ] >>357 はい、そのとおりです。
360 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 14:08:37.22 ] >>357 pipe2はlinux専用関数だがな
361 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 17:17:29.77 ] >>360 ウイーンドーズにも/dev/nullがあるんですか?
362 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 17:20:56.19 ] Windows だと NUL だろ。
363 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 21:07:31.14 ] 察するに、パスワード入力ではechoさせたくないとかそれ系の話だろ? 普通はtermiosやSetConsoleModeでやることで、標準出力を/dev/nullに付け替えるなんて教えた奴は凄いんだか意地悪なんだか
364 名前:デフォルトの名無しさん mailto:sage [2013/11/05(火) 21:23:56.90 ] >>363 標準出力のリダイレクトでは、その望みを叶えられないのだが。 凄くも何ともない。
365 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 17:40:38.34 ] int f(int n) { while (--n) ; return n} がgcc -O2 (4.6.3)で int f(int ) { retunr 0; } のようにコンパイルされました。 この最適化がヒューリスティック(パターンデータベースのようなもの)を使っているのか 知りたいのですが、どのへんを調べればいいのでしょうか? (質問の意図は、自作の最適化器にもこの手の処理をいれたいのですが、 場当たり的に入れるしかないのか、一般的な方法があるのかを知りたいということです。)
366 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 18:35:36.33 ] ただの定数最適化に見える。 あなたのレベルを分かるようにしないと、ドラゴンブック読めとか言われちゃうよ。
367 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 18:37:40.20 ] >>366 なんか見当違いなレスだなぁ
368 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 20:37:34.22 ] すいません。ドラゴンブックは学生時代に買って眺めたことはあります。専攻はコンピュータ科学でした。 コンパイラ関係はあまり深く学ばなかったとの、なにぶん10年以上のブランクがあるので、 どの程度の難しさの問題なのかもわからないのです。 定数最適化、なんでしょうか? while文が終わるとすれば0しかありえないですが、while文の停止性まで最適化器が判断できるのか疑問だったのです。 追伸: int f(int n) { while (n=n-2) {} return n; } main() { f(-2); } とかだとnの偶奇(もっと一般のケースもいけるみたいです)で結果を変えるようです。 -O0 と -O2 で実行時間が全然違ってしまいますが速くなる分にはいいんですよね。
369 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 21:40:38.13 ] GCCはどうだか知りませんのでドラゴンブックレベルの一般論ですが、 ループ最適化は普通にやるので、条件式は判断します。 制約条件がそこではっきりするので最終的には通常の定数最適化 パスで消えてるんじゃないでしょうか。 ドラゴンブックに書いてなかったっけ? 停止性が判断できるかという疑問ですが、判断できなければ 最適化はやらないということになるはずです。 逆に聞きたいのですが、ヒューリスティックに何かできる んでしょうか? 実行時判断みたいなもの?
370 名前:デフォルトの名無しさん mailto:sage [2013/11/10(日) 23:40:22.44 ] 前半はなんとなくわかりました。ドラゴンブックは多分実家にあるので参照できませんが、、、 後半ですが、誤用かもしれませんが経験則の意味で使いました。 停止性は当然一般には判断できないので、どんな経験則を使ってるのかな、ってぐらいで、 深い意味はなかったです。
371 名前:デフォルトの名無しさん [2014/01/04(土) 22:39:03.46 ] ドラゴンブックってなーに
372 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 23:07:48.15 ] ぐぐれ
373 名前:デフォルトの名無しさん mailto:sage [2014/01/06(月) 14:56:20.27 ] 教科書的な最適化はやってないと思うよ
374 名前:デフォルトの名無しさん mailto:sage [2014/01/06(月) 23:57:03.34 ] >>365 ブロック内の変数に関数外の部分から影響を受けるかどうか(volatileやrestrictじゃないメモリ参照とか)のフラグを用意して、 外部の影響を受けない変数や定数から構成された条件式は停止時の条件が計算できる可能が高いので最適化を試みるとか。 似たような考え方でブロックが(大域変数などに)副作用を与えるかどうかを判断すれば簡略化やコードの削除ができるんじゃない?
375 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 18:39:35.49 ] >>371 中学生が大好きな架空の生物が掲載された魔導書だよ 恐れおののきつつも憧れを抱き、本棚の奥で埃を被っている一冊 忘れた頃に自分の娘がドラゴンを召喚して世界を崩壊へ誘ったりするアレ
376 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 19:05:21.73 ] >>365 l1: --n; if (n != 0) goto l1; return n; 不変式解析で、 l1: --n; if (n != 0) goto l1; return 0; nの非到達性で、 return 0;
377 名前:デフォルトの名無しさん mailto:sage [2014/01/09(木) 23:33:20.23 ] >>375 おもしろそうですね
378 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 22:45:26.19 ] libdwarfがELFに依存してて泣ける… Windows(MinGW)だとPE+DWARFだから使えないのが残念 MinGWのobjdump.exeは自力で解析してるから、ソースを参考にすれば なんとかなりそうだけどDWARFの知識が必要になるし…
379 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 23:18:17.02 ] libdwarfをPE対応にしてupstreamにパッチ投げれば 他の人も幸せになれるんでないの
380 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 23:46:19.90 ] 正直libdwarf内で最低限のELFエミュレーションをしようと思ってソース 見たけどめげた…ごめんよ とりあえずobjdump.exeがやってるDWARF解析部分を解析してみるよ それでDWARFになじんだらまたトライしてみたい
381 名前:デフォルトの名無しさん [2014/02/13(木) 21:57:38.58 ] どうでもいいがCentOS最近入れたらデフォルトではインスコされてないんだな gccのないLinuxなんてLinuxじゃないやい
382 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 22:29:35.18 ] CentOSのGCCは糞古いから最初から入ってなくても問題無い ただ新しいのを入れるには色々手間は掛かる
383 名前:デフォルトの名無しさん mailto:sage [2014/02/13(木) 22:46:51.56 ] 3回コンパイルすりゃいいだけだろ
384 名前:片山博文MZ無能 ◆T6xkBnTXz7B0 mailto:sage [2014/02/14(金) 19:50:03.01 ] gccとg++は最近不具合があるから、clangに乗り換えることにした。
385 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 20:02:18.20 ] あそう
386 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 21:13:38.73 ] あべ
387 名前:デフォルトの名無しさん mailto:sage [2014/02/14(金) 23:07:39.94 ] あべし
388 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 01:10:07.47 ] ひでぶ
389 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 04:20:34.58 ] たわば
390 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 20:59:09.39 ] >>389 やぁ 先輩
391 名前:デフォルトの名無しさん mailto:sage [2014/02/15(土) 21:26:10.59 ] お こんなとこいたか まぁ上がれ
392 名前:デフォルトの名無しさん [2014/02/15(土) 22:58:41.46 ] おう、唐突なあ〜るスレやめろや
393 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 15:17:28.49 ] うるさい! おまえなんかロボットだ
394 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 16:03:52.41 ] 助けて あーりんロボ!ピンチなの!
395 名前:デフォルトの名無しさん mailto:sage [2014/02/17(月) 21:00:58.58 ] とほほ
396 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 21:19:37.28 ] 埼玉県の地図さえあれば
397 名前:デフォルトの名無しさん mailto:sage [2014/02/18(火) 21:57:49.43 ] 山田うどんの場所がわかる
398 名前:デフォルトの名無しさん [2014/02/18(火) 22:39:44.23 ] いろんなレガシー言語の墓場になってて面白いよね
399 名前: ◆QZaw55cn4c mailto:sage [2014/03/17(月) 18:34:12.34 ID:rLCh2DtT] >>394 「ロボットじゃないよ,アンドロイドだよ」って応えないと
400 名前:デフォルトの名無しさん mailto:sage [2014/03/21(金) 17:27:54.35 ID:Qhdzl4hJ] 何を言ってる。 あれは立派なロボだ。設計図を知らんのか。
401 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 14:20:24.04 ID:4BzhBi/8] >>381 Solarisにccがないとかいう話が昔なんとかかんとか > どうでもいいがCentOS最近入れたらデフォルトではインスコされてないんだな > gccのないLinuxなんてLinuxじゃないやい
402 名前:デフォルトの名無しさん mailto:sage [2014/03/24(月) 22:27:08.61 ID:SeS398JM] デフォってなによー の話だな
403 名前: ◆QZaw55cn4c mailto:sage [2014/03/25(火) 19:24:42.50 ID:I6L0W68I] え?Linux ですら clang に移行したの?
404 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 20:02:11.82 ID:AvCKhDY2] >>403 ちげーよ、標準インストールと開発インストールの違いもわかんねーコゾウだよ
405 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 20:57:10.65 ID:gYecV8lQ] 今日4.9をsvnからチェックアウトしてビルドしたんだけど、gfortranのopm_lib.modとかバイナリになった? 去年9月頃ははテキストだったけど仕様変わったのかなそれともビルド失敗したのかな
406 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 21:00:28.08 ID:gYecV8lQ] あ、opm有効にしてビルドしたら実行ファイルは動いてるから仕様変わったのね 履歴にはなんも書いてないっぽい 同じく昨日ビルドした4.8.3のスナップは未だにテキスト形式なんだけどなー
407 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 21:20:14.97 ID:gYecV8lQ] 更に勘違い。去年9月の4.9もバイナリだった、4.8はずーっとテキスト形式 あーんもう、ごめん!
408 名前:デフォルトの名無しさん mailto:sage [2014/03/25(火) 23:27:56.52 ID:6NPXk5PR] MacOSとFreeBSDはclangだよな
409 名前:デフォルトの名無しさん [2014/03/26(水) 00:54:07.95 ID:+kV1DCY1] せやな MacOSは-stdlib=libc++をつけるのがめんどくさい
410 名前:デフォルトの名無しさん mailto:sage [2014/04/07(月) 00:58:28.85 ID:JdSV9wAR] ツール使えよ
411 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 17:35:18.77 ID:NoRZCfW9] trankのgccが4.10になってた セグメントエラー多すぎ
412 名前:デフォルトの名無しさん [2014/04/29(火) 09:38:50.75 ID:ysohpla1] GCC4.9ってOpenMP4.0フルサポートしてんの?
413 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 12:26:36.46 ID:RKEixZj5] 4.9.0 出てたんだ
414 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 16:53:49.90 ID:D1oOHYCI] 次は4.10なのか 5になるためのネタがない?
415 名前:デフォルトの名無しさん mailto:sage [2014/05/30(金) 10:15:09.82 ID:A+ocbhhF] 415 のテスト