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

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレGCCについて part10

gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
1 2 3 4 5 6 7 8 9 10 11 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
1 : デフォルトの名無 - 2011/09/03(土) 14:13:04.14 .net (+93,-30,-160)
史上最強かもしれなかったツール、GCC(GNU Compiler Collection)について語るスレ。

GNU本家のGCCページ
http://gcc.gnu.org/

Binutils - Collection of binary utilities ←これも必要だぞ。
http://www.gnu.org/directory/GNU/binutils.html

GNU Binutils
http://sources.redhat.com/binutils/

GCC online documentation
http://gcc.gnu.org/onlinedocs/

Installing GCC
http://gcc.gnu.org/install/

GCC Timeline
http://gcc.gnu.org/releases.html#timeline

Calendar
http://gcc.gnu.org/develop.html#timeline

前スレ
GCCについて part9
http://hibari.2ch.net/test/read.cgi/tech/1246059290/

関連スレ
【最速へ】LowLevelVirtualMachine【LLVM】
http://hibari.2ch.net/test/read.cgi/tech/1211547655/
2 : デフォルトの名無 - 2011/09/03(土) 17:04:19.11 .net (+67,+29,-21)
ストラウストラップ本は、あれプログラミング初心者向けの本じゃないから注意な
中級者が現実的なプログラミングの方法を学ぶ為の本であって
3 : デフォルトの名無 - 2011/09/03(土) 17:12:55.71 .net (+66,+29,-9)
初心者って何の?
CやJavaは知ってるが、これからC++をやろうって言う人にはうってつけのような・・・
4 : デフォルトの名無 - 2011/09/03(土) 18:03:27.53 .net (+57,+29,-4)
俺にはプログラミングの初心者って書いてあるように見えるが…?
5 : デフォルトの名無 - 2011/09/03(土) 18:16:27.85 .net (+63,+30,-65)
>本書はその原則を実際に展開しながら「プログラミングとはなにか」「どうやってプログラミングを学習するか」を
>平易に解説してゆく。何度も挫折を繰り返した学習者や、原点に立ち戻り「プログラミング」を深めたい実務者など、
>すべての開発者必読の1冊である。

と、あるよ?
6 : デフォルトの名無 - 2011/09/03(土) 18:19:25.36 .net (+66,+29,-11)
>>2
プログラミングの初心者は現実的なプログラミングを学んじゃいけないの?
7 : デフォルトの名無 - 2011/09/03(土) 18:27:43.87 .net (+3,-29,-53)
まぁ あの本はストラウストラプ先生(長い)の
ありがた~い言葉を入門者のように素直に聞くというのが
いいかと。
神の声のような感じでうっとりですよw

でも int char double string if switch while for vector ってな
感じでポンポン出て来て、リズムがいいっすね。
ほんとにC++はツールとして選んだって感じです。
8 : デフォルトの名無 - 2011/09/03(土) 18:29:48.06 .net (+57,+29,-6)
一冊くらいはびよーんすぽっすぽっの本も読んでみるか。
9 : デフォルトの名無 - 2011/09/03(土) 19:26:15.61 .net (+58,+29,-12)
前スレ>>999
いや時代遅れで役に立たない本だ、とか言いたかったわけじゃなくて
単純に>>976が勘違いしてそうだったので。
10 : デフォルトの名無 - 2011/09/03(土) 23:44:24.91 .net (+57,+29,-28)
禿があれ書いた時は、ああもうC++0xが確定寸前でやることないから、
プログラミング入門でも書く気になったのかなと思った。
もちろんそれは気のせいだった。
11 : デフォルトの名無 - 2011/09/04(日) 01:49:11.78 .net (+61,+29,+0)
>>3-5
とんでもない誤解だよ
http://d.hatena.ne.jp/eel3/20110813/1314198158
12 : デフォルトの名無 - 2011/09/04(日) 01:58:49.57 .net (+63,+30,-83)
>ただ「プログラミングを始めるための最もやさしい本ではない」訳で、
>何かしらの開発経験はあるけど色々と足りない部分を痛感しているような人なら本書で独習することも可能だろうが、
>それよりも経験値が不足している人やプログラミング未経験の人が独習用に使うのは避けたほうが無難だろう

ふ~ん。(゚σ ゚)ホジホジ
13 : デフォルトの名無 - 2011/09/04(日) 02:52:57.76 .net (+63,+30,-144)
まえがきからの抜粋に文句つけられても・・・

>本書はプログラミングを始めるための最もやさしい本ではないし、そのようなつもりで書いていない。
>著者が目指したのは、現実のプログラミングの基礎を最も簡単に学べる本である。
>現実のソフトウェアの多くがほんの数年前まで高度であると見なされていた技術に基づいていることを考えれば、実に意欲的な目標ではないか。
>基本的には、他の人が使用するためのプログラムを書き、それを責任を持って行い、
>それなりの品質を維持したいと考えていることが前提となる。
>つまり、プロとして恥ずかしくないレベルを目指しているものと想定する。
>そこで、本書では教えたり学んだりするのがやさしいものではなく、
>現実のプログラムに取り組むために必要なものがカバーされるように話題を選んだ。
14 : デフォルトの名無 - 2011/09/04(日) 03:34:40.08 .net (+57,+29,-24)
あえて入門書というカタチを取ったおかげで
言葉や想いが伝わりやすくなってる気がする。
でも その言葉は熱く優しく気高い。
15 : デフォルトの名無 - 2011/09/04(日) 13:22:41.77 .net (+57,+29,-6)
まあ独学でやるにはそれなりのプログラミング経験は必要ってこったな
16 : デフォルトの名無 - 2011/09/07(水) 02:27:29.37 .net (+51,+23,-3)
趣味ならrubyなりnode.jsなり、もっと良い言語があるのにな
17 : デフォルトの名無 - 2011/09/07(水) 17:31:07.36 .net (+45,+27,+1)
釣られませんよ
18 : デフォルトの名無 - 2011/09/12(月) 13:33:25.48 .net (+12,-30,-30)
unused but set variablesって4.6以降エラー扱いがデフォになってるみたいだけど、
これって弾かないといけないくらい有害なの?
いまいちデメリットがよくわかんないんで誰かヒントくれ。
19 : デフォルトの名無 - 2011/09/12(月) 14:45:09.25 .net (+52,+29,+0)
弾込めたら弾かないと
20 : デフォルトの名無 - 2011/09/12(月) 16:53:41.85 .net (+57,+29,-8)
無駄な変数宣言しとるで
って、だけじゃあ
違うかな
21 : デフォルトの名無 - 2011/09/12(月) 19:14:40.83 .net (+59,+29,-21)
その程度で警告じゃなくてエラー扱いはやりすぎだからなんか深い理由があるの?
>>18は聞いてるようだが
22 : デフォルトの名無 - 2011/09/12(月) 20:01:04.29 .net (+14,-8,-8)
引数の未使用でもエラー吐くの?
23 : デフォルトの名無 - 2011/09/12(月) 20:03:57.34 .net (+57,+29,-6)
無能って教えてくれてるんじゃあ、コンパイラが
24 : デフォルトの名無 - 2011/09/12(月) 20:10:01.63 .net (+57,+29,-4)
バグのあらわれだったりすることはあるよね。
25 : デフォルトの名無 - 2011/09/12(月) 20:16:15.63 .net (-2,-30,-19)
-Wunused-parameter
つけんと特に怒らんけどね、コンパイラ
26 : デフォルトの名無 - 2011/09/12(月) 21:13:48.24 .net (-1,-29,-16)
-O2 -Wall -Werrorあたりよくわからんまま適当につけて
怒られているとエスパーしてみる
27 : デフォルトの名無 - 2011/09/12(月) 23:10:36.24 .net (+3,-30,-65)
-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 .net (+3,-30,-32)
質問です

gcc4.6.1(MinGW)でRaw string literalで R[]で囲もうとするとコンパイルエラーになります
R()で囲むとコンパイルが通るのですが、どちらが正しいのでしょうか?
29 : デフォルトの名無 - 2011/09/25(日) 03:12:44.02 .net (+0,-30,-33)
R"( )" で囲むのが正しいよ
R"hoge( )hoge" とかで囲んでもいいけど

R[ ] も R( ) もコンパイル通らない
30 : デフォルトの名無 - 2011/09/25(日) 03:13:51.73 .net (+0,-26,-2)
>>29
ありがとうございます
早くc++11の規格表が欲しくなりますね
31 : デフォルトの名無 - 2011/09/25(日) 03:14:04.05 .net (+25,+2,+1)
あ、しまった
sageます
32 : デフォルトの名無 - 2011/09/25(日) 03:14:42.11 .net (+13,-9,+1)
FDISはもう落とせないからねえ
33 : デフォルトの名無 - 2011/09/25(日) 03:15:29.50 .net (-1,-29,-4)
はい
FDISはいりません
正規のPDFを購入予定です
34 : デフォルトの名無 - 2011/09/26(月) 10:50:49.10 .net (-1,-29,-9)
そのうちANSI版が安く出るでしょ。(ISO版は高いけど)
35 : デフォルトの名無 - 2011/09/27(火) 02:14:55.66 .net (-1,-29,-6)
やっとリポに4.5.3来た
4.4.5 → 4.5.3 ビルドしてきます
36 : デフォルトの名無 - 2011/10/02(日) 16:37:36.59 .net (+4,-29,-152)
共有ライブラリのリンクの方法に関する
正式なドキュメントってどこにあるんでしょう?

GCC online documentation
http://gcc.gnu.org/onlinedocs/

ここのどのバージョンでもいいですけど
リンクオプションのページを見ても
-l の説明にはスタティックライブラリの
ことしか載ってないですよね?

今まで普通に -l で共有ライブラリのリンクも
指定して特に問題なく実行できていたのですが
一度ちゃんと仕様を確認しておこうと思ったら
どこにもないのですが…

それとも単純にスタティックの場合の記述を
共有の場合にも適用してしまっていいということでしょうか?

ご存知の方いましたら教えてください
37 : デフォルトの名無 - 2011/10/02(日) 17:23:46.23 .net (+0,-29,-5)
>>36
共有ともスタティックとも書かれていないような。
http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Link-Options.html#index-Libraries-968
38 : デフォルトの名無 - 2011/10/02(日) 17:27:24.26 .net (+3,-30,-49)
>>37
-l の説明の最後に

... with `lib' and `.a' and searches several directories.

とあったので拡張子からしてスタティックのことだと思ったのですが
そういうわけではないのでしょうか?
39 : デフォルトの名無 - 2011/10/02(日) 17:36:46.07 .net (+3,-30,-118)
man ldしな。gccはコンパイラやリンカをそこそこよろしいオプションで起動するドライバ。
例外投げる共有ライブラリを使う場合は-static-libgccは使わない方がいい。

本当に詳しく知りたいならbinutils側のドキュメントと現在の実装度、
使うオブジェクトファイル形式の仕様、OS側のライブラリ管理方式、
自分の使うgccのspecsファイルを見れば何したらどうなるか分かる。
40 : デフォルトの名無 - 2011/10/02(日) 18:09:29.22 .net (+4,-30,-200)
man ld はCentOS5で確認済みでしたが、共有ライブラリに関することは
載っていませんでした。(むしろスタティック限定とも取れる書き方)

…が、ネットでいくつか検索してみたところ、例えば

http://www.sra.co.jp/wingnut/ld/ld-ja_2.html

では

> -larchive
> --library=archive
> 共有ライブラリをサポートしているシステムでは, ld は, 拡張子が .a 以外のライブラリをも検索する.
> 特に, ELF システムと SunOS では, ld はあるディレクトリでライブラリを検索する時, 拡張子が .a の
> ものよりも先に拡張子が .so のものを 探す. 約束により, .so という拡張子は共有ライブラリを表す.

という記述があり、一応スッキリしました。
(割と重要な情報だと思いますが、マニュアルに必ずしも記述されてないようですね)


binutilsをはじめとするその他ドキュメントについても確認してみます。
どうもありがとうございました。
41 : デフォルトの名無 - 2011/10/02(日) 18:39:47.33 .net (+18,-11,-6)
GCCはmanpageは参考程度と思え、とどっかで読んだ記憶がある
42 : デフォルトの名無 - 2011/10/02(日) 18:46:41.29 .net (+5,-30,-72)
今のbinutilsのmanなら-l namespecで同じ記述がある筈なんだけどなあ
CentOSのパッケージの都合でもあるのか

>>41
逆にさんざん探して無いと思ってた情報がmanに載ってる場合も
43 : デフォルトの名無 - 2011/10/02(日) 18:51:17.70 .net (-1,-29,-3)
gcc -Wl,--verbose ほげほげ
44 : デフォルトの名無 - 2011/10/03(月) 00:59:51.12 .net (+3,-30,-210)
>>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 : 横レス - 2011/10/03(月) 01:24:26.74 .net (+3,-30,+0)
説明
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 : デフォルトの名無 - 2011/10/05(水) 21:17:11.75 .net (-2,-30,-16)
Merging In The GNU D Language Compiler To GCC
http://www.phoronix.com/scan.php?page=news_item&px=OTk2NA

D言語、いらっしゃい
47 : デフォルトの名無 - 2011/10/09(日) 19:40:37.99 .net (+3,-30,-78)
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 : デフォルトの名無 - 2011/10/09(日) 19:48:38.09 .net (-1,-29,-5)
-m i386:x86-64 -b binary ...
これで上手くいきました・・・すいませんでした
49 : デフォルトの名無 - 2011/10/28(金) 16:11:17.24 .net (-11,-29,+0)
4.6.2
50 : デフォルトの名無 - 2011/11/22(火) 22:16:04.41 .net (-2,-30,-11)
Binutils 2.22 released
1 2 3 4 5 6 7 8 9 10 11 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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