史上最強かもしれなかったツール、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/
GCCについて part10
■ このスレッドは過去ログ倉庫に格納されています
2011/09/03(土) 14:13:04.14
2011/09/03(土) 18:19:25.36
>>2
プログラミングの初心者は現実的なプログラミングを学んじゃいけないの?
プログラミングの初心者は現実的なプログラミングを学んじゃいけないの?
2011/09/03(土) 18:27:43.87
まぁ あの本はストラウストラプ先生(長い)の
ありがた〜い言葉を入門者のように素直に聞くというのが
いいかと。
神の声のような感じでうっとりですよw
でも int char double string if switch while for vector ってな
感じでポンポン出て来て、リズムがいいっすね。
ほんとにC++はツールとして選んだって感じです。
ありがた〜い言葉を入門者のように素直に聞くというのが
いいかと。
神の声のような感じでうっとりですよw
でも int char double string if switch while for vector ってな
感じでポンポン出て来て、リズムがいいっすね。
ほんとにC++はツールとして選んだって感じです。
2011/09/03(土) 18:29:48.06
一冊くらいはびよーんすぽっすぽっの本も読んでみるか。
2011/09/03(土) 19:26:15.61
2011/09/03(土) 23:44:24.91
禿があれ書いた時は、ああもうC++0xが確定寸前でやることないから、
プログラミング入門でも書く気になったのかなと思った。
もちろんそれは気のせいだった。
プログラミング入門でも書く気になったのかなと思った。
もちろんそれは気のせいだった。
2011/09/04(日) 01:49:11.78
2011/09/04(日) 01:58:49.57
>ただ「プログラミングを始めるための最もやさしい本ではない」訳で、
>何かしらの開発経験はあるけど色々と足りない部分を痛感しているような人なら本書で独習することも可能だろうが、
>それよりも経験値が不足している人やプログラミング未経験の人が独習用に使うのは避けたほうが無難だろう
ふ〜ん。(゚σ ゚)ホジホジ
>何かしらの開発経験はあるけど色々と足りない部分を痛感しているような人なら本書で独習することも可能だろうが、
>それよりも経験値が不足している人やプログラミング未経験の人が独習用に使うのは避けたほうが無難だろう
ふ〜ん。(゚σ ゚)ホジホジ
2011/09/04(日) 02:52:57.76
まえがきからの抜粋に文句つけられても・・・
>本書はプログラミングを始めるための最もやさしい本ではないし、そのようなつもりで書いていない。
>著者が目指したのは、現実のプログラミングの基礎を最も簡単に学べる本である。
>現実のソフトウェアの多くがほんの数年前まで高度であると見なされていた技術に基づいていることを考えれば、実に意欲的な目標ではないか。
>基本的には、他の人が使用するためのプログラムを書き、それを責任を持って行い、
>それなりの品質を維持したいと考えていることが前提となる。
>つまり、プロとして恥ずかしくないレベルを目指しているものと想定する。
>そこで、本書では教えたり学んだりするのがやさしいものではなく、
>現実のプログラムに取り組むために必要なものがカバーされるように話題を選んだ。
>本書はプログラミングを始めるための最もやさしい本ではないし、そのようなつもりで書いていない。
>著者が目指したのは、現実のプログラミングの基礎を最も簡単に学べる本である。
>現実のソフトウェアの多くがほんの数年前まで高度であると見なされていた技術に基づいていることを考えれば、実に意欲的な目標ではないか。
>基本的には、他の人が使用するためのプログラムを書き、それを責任を持って行い、
>それなりの品質を維持したいと考えていることが前提となる。
>つまり、プロとして恥ずかしくないレベルを目指しているものと想定する。
>そこで、本書では教えたり学んだりするのがやさしいものではなく、
>現実のプログラムに取り組むために必要なものがカバーされるように話題を選んだ。
2011/09/04(日) 03:34:40.08
あえて入門書というカタチを取ったおかげで
言葉や想いが伝わりやすくなってる気がする。
でも その言葉は熱く優しく気高い。
言葉や想いが伝わりやすくなってる気がする。
でも その言葉は熱く優しく気高い。
2011/09/04(日) 13:22:41.77
まあ独学でやるにはそれなりのプログラミング経験は必要ってこったな
2011/09/07(水) 02:27:29.37
趣味ならrubyなりnode.jsなり、もっと良い言語があるのにな
2011/09/07(水) 17:31:07.36
釣られませんよ
2011/09/12(月) 13:33:25.48
unused but set variablesって4.6以降エラー扱いがデフォになってるみたいだけど、
これって弾かないといけないくらい有害なの?
いまいちデメリットがよくわかんないんで誰かヒントくれ。
これって弾かないといけないくらい有害なの?
いまいちデメリットがよくわかんないんで誰かヒントくれ。
2011/09/12(月) 14:45:09.25
弾込めたら弾かないと
2011/09/12(月) 16:53:41.85
無駄な変数宣言しとるで
って、だけじゃあ
違うかな
って、だけじゃあ
違うかな
2011/09/12(月) 19:14:40.83
その程度で警告じゃなくてエラー扱いはやりすぎだからなんか深い理由があるの?
と>>18は聞いてるようだが
と>>18は聞いてるようだが
2011/09/12(月) 20:01:04.29
引数の未使用でもエラー吐くの?
2011/09/12(月) 20:03:57.34
無能って教えてくれてるんじゃあ、コンパイラが
2011/09/12(月) 20:10:01.63
バグのあらわれだったりすることはあるよね。
2011/09/12(月) 20:16:15.63
-Wunused-parameter
つけんと特に怒らんけどね、コンパイラ
つけんと特に怒らんけどね、コンパイラ
2011/09/12(月) 21:13:48.24
-O2 -Wall -Werrorあたりよくわからんまま適当につけて
怒られているとエスパーしてみる
怒られているとエスパーしてみる
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 が設定されましたが使用されていません"
#: 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()で囲むとコンパイルが通るのですが、どちらが正しいのでしょうか?
gcc4.6.1(MinGW)でRaw string literalで R[]で囲もうとするとコンパイルエラーになります
R()で囲むとコンパイルが通るのですが、どちらが正しいのでしょうか?
2011/09/25(日) 03:12:44.02
R"( )" で囲むのが正しいよ
R"hoge( )hoge" とかで囲んでもいいけど
R[ ] も R( ) もコンパイル通らない
R"hoge( )hoge" とかで囲んでもいいけど
R[ ] も R( ) もコンパイル通らない
30デフォルトの名無しさん
2011/09/25(日) 03:13:51.732011/09/25(日) 03:14:04.05
あ、しまった
sageます
sageます
2011/09/25(日) 03:14:42.11
FDISはもう落とせないからねえ
2011/09/25(日) 03:15:29.50
はい
FDISはいりません
正規のPDFを購入予定です
FDISはいりません
正規のPDFを購入予定です
2011/09/26(月) 10:50:49.10
そのうちANSI版が安く出るでしょ。(ISO版は高いけど)
2011/09/27(火) 02:14:55.66
やっとリポに4.5.3来た
4.4.5 → 4.5.3 ビルドしてきます
4.4.5 → 4.5.3 ビルドしてきます
2011/10/02(日) 16:37:36.59
共有ライブラリのリンクの方法に関する
正式なドキュメントってどこにあるんでしょう?
GCC online documentation
http://gcc.gnu.org/onlinedocs/
ここのどのバージョンでもいいですけど
リンクオプションのページを見ても
-l の説明にはスタティックライブラリの
ことしか載ってないですよね?
今まで普通に -l で共有ライブラリのリンクも
指定して特に問題なく実行できていたのですが
一度ちゃんと仕様を確認しておこうと思ったら
どこにもないのですが…
それとも単純にスタティックの場合の記述を
共有の場合にも適用してしまっていいということでしょうか?
ご存知の方いましたら教えてください
正式なドキュメントってどこにあるんでしょう?
GCC online documentation
http://gcc.gnu.org/onlinedocs/
ここのどのバージョンでもいいですけど
リンクオプションのページを見ても
-l の説明にはスタティックライブラリの
ことしか載ってないですよね?
今まで普通に -l で共有ライブラリのリンクも
指定して特に問題なく実行できていたのですが
一度ちゃんと仕様を確認しておこうと思ったら
どこにもないのですが…
それとも単純にスタティックの場合の記述を
共有の場合にも適用してしまっていいということでしょうか?
ご存知の方いましたら教えてください
2011/10/02(日) 17:23:46.23
>>36
共有ともスタティックとも書かれていないような。
ttp://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Link-Options.html#index-Libraries-968
共有ともスタティックとも書かれていないような。
ttp://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Link-Options.html#index-Libraries-968
2011/10/02(日) 17:27:24.26
>>37
-l の説明の最後に
... with `lib' and `.a' and searches several directories.
とあったので拡張子からしてスタティックのことだと思ったのですが
そういうわけではないのでしょうか?
-l の説明の最後に
... with `lib' and `.a' and searches several directories.
とあったので拡張子からしてスタティックのことだと思ったのですが
そういうわけではないのでしょうか?
2011/10/02(日) 17:36:46.07
man ldしな。gccはコンパイラやリンカをそこそこよろしいオプションで起動するドライバ。
例外投げる共有ライブラリを使う場合は-static-libgccは使わない方がいい。
本当に詳しく知りたいならbinutils側のドキュメントと現在の実装度、
使うオブジェクトファイル形式の仕様、OS側のライブラリ管理方式、
自分の使うgccのspecsファイルを見れば何したらどうなるか分かる。
例外投げる共有ライブラリを使う場合は-static-libgccは使わない方がいい。
本当に詳しく知りたいならbinutils側のドキュメントと現在の実装度、
使うオブジェクトファイル形式の仕様、OS側のライブラリ管理方式、
自分の使うgccのspecsファイルを見れば何したらどうなるか分かる。
2011/10/02(日) 18:09:29.22
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をはじめとするその他ドキュメントについても確認してみます。
どうもありがとうございました。
載っていませんでした。(むしろスタティック限定とも取れる書き方)
…が、ネットでいくつか検索してみたところ、例えば
http://www.sra.co.jp/wingnut/ld/ld-ja_2.html
では
> -larchive
> --library=archive
> 共有ライブラリをサポートしているシステムでは, ld は, 拡張子が .a 以外のライブラリをも検索する.
> 特に, ELF システムと SunOS では, ld はあるディレクトリでライブラリを検索する時, 拡張子が .a の
> ものよりも先に拡張子が .so のものを 探す. 約束により, .so という拡張子は共有ライブラリを表す.
という記述があり、一応スッキリしました。
(割と重要な情報だと思いますが、マニュアルに必ずしも記述されてないようですね)
binutilsをはじめとするその他ドキュメントについても確認してみます。
どうもありがとうございました。
2011/10/02(日) 18:39:47.33
GCCはmanpageは参考程度と思え、とどっかで読んだ記憶がある
2011/10/02(日) 18:46:41.29
今のbinutilsのmanなら-l namespecで同じ記述がある筈なんだけどなあ
CentOSのパッケージの都合でもあるのか
>>41
逆にさんざん探して無いと思ってた情報がmanに載ってる場合も
CentOSのパッケージの都合でもあるのか
>>41
逆にさんざん探して無いと思ってた情報がmanに載ってる場合も
2011/10/02(日) 18:51:17.70
gcc -Wl,--verbose ほげほげ
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のバージョンは何?
> 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 説明
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 の振る舞いは
、コマンドラインや環境変数によって細かく制御できるようになっている。
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 の振る舞いは
、コマンドラインや環境変数によって細かく制御できるようになっている。
2011/10/05(水) 21:17:11.75
Merging In The GNU D Language Compiler To GCC
http://www.phoronix.com/scan.php?page=news_item&px=OTk2NA
D言語、いらっしゃい
http://www.phoronix.com/scan.php?page=news_item&px=OTk2NA
D言語、いらっしゃい
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を逆アセンブルしてくれます
$ /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を逆アセンブルしてくれます
2011/10/09(日) 19:48:38.09
-m i386:x86-64 -b binary ...
これで上手くいきました・・・すいませんでした
これで上手くいきました・・・すいませんでした
2011/10/28(金) 16:11:17.24
4.6.2
2011/11/22(火) 22:16:04.41
Binutils 2.22 released
2011/11/23(水) 06:13:33.85
すいません
リンカ(ld)のオプション-Rについて教えてください
マニュアルには「シンボル名とそのアドレスを filename から読み込む.」
とありますが、
これはライブラリのあるフォルダを指定しているということでしょうか?
とすると、gccの-Lや-lはなんのために有るのでしょうか?
リンカ(ld)のオプション-Rについて教えてください
マニュアルには「シンボル名とそのアドレスを filename から読み込む.」
とありますが、
これはライブラリのあるフォルダを指定しているということでしょうか?
とすると、gccの-Lや-lはなんのために有るのでしょうか?
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
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
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**をコピーすれば良いかなとも思ったのですが、
これで良いでしょうか?
ん?
よくわからないです。
例えば
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**をコピーすれば良いかなとも思ったのですが、
これで良いでしょうか?
2011/11/23(水) 22:24:14.63
>>53
>よくわからないです。
ド素人が何をしてるのか、わかる人がいるとは思えんけど
--rpathってのは、暗黙にリンクされるlibファイルの場所を指定するんだけど
(俺もよくわかってないので雰囲気でわかって頂戴)
-Lはlibのある場所を指定するところ
libhoge.aをlinkしたいとき、フルパスで指定すると
ほげほげ/libhoga.a
と書くところを
-Lほげほげ -lhoge
って、書けるっていうだけ
libの依存関係によっては、書く順番によってはエラーになることがある
実績のあるtar玉から
configure,makeして何やってるか、見て見るところから始めたら
言葉で覚えるより出来合いのもの見て覚えるほうを個人的にオススメする
>よくわからないです。
ド素人が何をしてるのか、わかる人がいるとは思えんけど
--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'
というエラーが発生しました。
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'
というエラーが発生しました。
2011/11/28(月) 03:53:25.95
エラーメッセージの内容が理解できないの
としか、いえんな
としか、いえんな
2011/11/28(月) 08:57:15.07
何カ所でマルチポストしてるんだよこいつ
2011/11/28(月) 15:50:55.67
BSDIってまだサポートされてるのとかgcc-2.95とかそれでもマルチとか驚愕
2011/11/28(月) 17:56:22.57
autotoolsで作ってる共有ライブラリを
fprofile-generate、fprofile-useを使って
最適化する方法の詳細な記事を書いてください。
fprofile-generate、fprofile-useを使って
最適化する方法の詳細な記事を書いてください。
2011/11/28(月) 17:59:00.69
?ttp://d.hatena.ne.jp/pyopyopyo/20060311
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があることは確認済みです。
原因と対策を教えてください。
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があることは確認済みです。
原因と対策を教えてください。
2011/12/02(金) 13:43:09.47
error: macro "getch" passed 2 arguments, but takes just 0
2011/12/02(金) 13:44:58.01
エラーメッセージを読め。読み方がわからなければ先生に聞け。
getch()に引数は不要。他の関数と間違えてる?
getch()に引数は不要。他の関数と間違えてる?
2011/12/03(土) 01:51:07.80
エラーメッセージ、本当は error: の前に "なんとか.c:6:14 " みたいなのがあるはずだが。
それに本当にcursesでプログラムを書きたいのかと。
もしこれが真面目な質問なら、C言語の質問をするようなスレで、どんなプログラムを
作りたいのか説明して質問した方がいいと思う。
本当にcursesを使うならUNIX系の人じゃないと知らないかもしれんけど。
それに本当にcursesでプログラムを書きたいのかと。
もしこれが真面目な質問なら、C言語の質問をするようなスレで、どんなプログラムを
作りたいのか説明して質問した方がいいと思う。
本当にcursesを使うならUNIX系の人じゃないと知らないかもしれんけど。
2011/12/04(日) 06:50:41.64
初心者ですみません
Cygwin で gcc を使ってます
assert() を使用すると undefined reference to `_assert'
エラーが出て困ってます
どなたかご教授頂けると幸いです
Cygwin で gcc を使ってます
assert() を使用すると undefined reference to `_assert'
エラーが出て困ってます
どなたかご教授頂けると幸いです
2011/12/04(日) 07:23:22.03
#include <assert.h>してある?
2011/12/04(日) 10:45:39.26
>>66
ビンゴでした(;^ω^)
ビンゴでした(;^ω^)
2011/12/08(木) 23:11:00.34
gccというかautotoolsなのですが
./configure --build=x86_64-w64-mingw32
と毎回指定するのが面倒なので、環境変数で指定できないでしょうか?
./configure --build=x86_64-w64-mingw32
と毎回指定するのが面倒なので、環境変数で指定できないでしょうか?
2011/12/09(金) 02:11:26.49
alias conf='./configure --build=x86_64-w64-mingw32'
とでもしとけばいいんじゃね?
とでもしとけばいいんじゃね?
2011/12/09(金) 02:22:58.33
config.niceを拾っておいて2回目以降はそれ使わね?
2011/12/09(金) 02:42:43.54
2011/12/09(金) 17:49:05.22
73デフォルトの名無しさん
2011/12/10(土) 23:10:38.16 SandyBridgeでg++ -march=native -mtune=native で作ったバイナリって
Core2とかじゃ動かないみたいなんだけど、どのオプションでどれで動くかって
表か何かない?
Core2とかじゃ動かないみたいなんだけど、どのオプションでどれで動くかって
表か何かない?
2011/12/11(日) 03:28:34.47
>>73
nativeだとAVX(-mavx)が入るからだろ
-march=core2にしたらいいよ
オプションはこれででる
ttp://d.hatena.ne.jp/ktomoya/20100510/1273510042
nativeだとAVX(-mavx)が入るからだろ
-march=core2にしたらいいよ
オプションはこれででる
ttp://d.hatena.ne.jp/ktomoya/20100510/1273510042
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
おぉ、サンクス。
ちなみに、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
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は指定しないか
対象が分かっているならその中で一番機能が少ないプロセッサに合わせて設定したほうがいいかと
-mavx -msse4.2 -msse4.1 -maes -mpclmul -mpopcnt ...
などがCPUごとに実装状況が異なる命令を使うってオプションだから
SSE4.2やAVX、POPCNTなど最近できた命令に対応していないプロセッサだと動かない
-march=nativeはコンパイルしたマシンのプロセッサなどからこういうオプションを勝手に付けてくれるものだから
対応表とか作るとCPUのカタログになってしまうので
コンパイル済みのバイナリを別のマシンで実行したいならmarchやmtuneは指定しないか
対象が分かっているならその中で一番機能が少ないプロセッサに合わせて設定したほうがいいかと
2011/12/16(金) 21:45:35.33
普段Pythonを使っているんだけど、gcc on LinuxでCで何かの分野の処理をやるとしたら何の分野がいいかな?
コーディングがマゾい奴はやりたくない。うひょー、コーディング楽しいって感じの週末にしたい。
コーディングがマゾい奴はやりたくない。うひょー、コーディング楽しいって感じの週末にしたい。
2011/12/16(金) 22:57:34.93
フィボナッチ数でも計算してろ
2011/12/17(土) 04:10:44.29
wxPython と wxWidgets のバインディングが出来るツールをおながいしまつ
2011/12/22(木) 10:18:33.81
windows7にしたらResource temporarily unavailableエラーが頻出するようになったんだけど
どういうことこれ
どういうことこれ
2011/12/22(木) 12:07:36.06
Cygwin使っているならCygwin固有の問題
2011/12/28(水) 14:50:50.96
問題だね(´・ω・`)
2011/12/31(土) 16:04:05.91
問題と思うから問題になる
問題と思わなければ問題ない
問題と思わなければ問題ない
2012/01/01(日) 19:14:46.19
2012/01/02(月) 13:01:35.03
具体的に
何やったら、こうなった
って、かいてほしいな
何やったら、こうなった
って、かいてほしいな
2012/01/03(火) 12:16:02.83
2012/01/03(火) 13:21:45.30
4.6.1の情報はドコで手に入りますか?
2012/01/03(火) 20:06:07.38
tar玉に入ってるだろ
2012/01/05(木) 18:39:50.52
最適化しても助長なコードを吐くことがあるのを見つけちゃったよ
2012/01/05(木) 19:35:52.48
んではそのケース用peephole optimizationを.mdに追加してくれ
2012/01/05(木) 19:44:12.02
え、秘密にしてちゃ駄目かな?
2012/01/05(木) 23:33:57.20
助長してくれるならいいことじゃないか
2012/01/06(金) 00:22:32.22
転送先に書いて、転送先から同じレジスタに書き戻すことがある
で、わかりますか?
で、わかりますか?
94デフォルトの名無しさん
2012/01/06(金) 14:47:54.30 ターゲット書かないのはターゲット非依存ってことなのか、今日日x86に決まってんだろうがってことなのか
2012/01/06(金) 15:14:17.60
複数archで確認してるよ、peephole2使って
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;
}
実行した時の表示が
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;
}
2012/01/08(日) 22:35:35.37
a=test(a);
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;
}
void test(int *a)
{
*a += 1;
}
int main()
{
int a = 1;
printf("%d\n",a);
test(&a);
printf("%d\n",a);
return 0;
}
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
の場合分けが悪いだけなのにね
ここに書いても無駄だと思うけど、なんとなく
ttp://gcc.gnu.org/ml/gcc-patches/2012-01/msg00627.html
gcc/function.cの
HAVE_return
HAVE_simple_return
の場合分けが悪いだけなのにね
ここに書いても無駄だと思うけど、なんとなく
100デフォルトの名無しさん
2012/01/13(金) 14:29:13.06101デフォルトの名無しさん
2012/01/13(金) 15:20:26.40 特定アーキテクチャの問題
じゃあねえよ、ど素人が
じゃあねえよ、ど素人が
102デフォルトの名無しさん
2012/01/14(土) 14:19:50.12103デフォルトの名無しさん
2012/01/14(土) 17:37:33.78 他のアーキテクチャはmdいじくって、回避してるよ
どっちを修正すればいいかって話になるけど
function.cの該当部分書いたのがイマイチだって感じかな?
どっちを修正すればいいかって話になるけど
function.cの該当部分書いたのがイマイチだって感じかな?
104デフォルトの名無しさん
2012/01/14(土) 17:46:01.66 archによってはわざとmakeでコケるような細工してあることが注意したほうがいいよ
105デフォルトの名無しさん
2012/01/14(土) 18:23:50.79 make の段階でこけるならまだ良心的だなw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★11 [蚤の市★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【沖縄】開業4ヵ月でこれは…“国民の税金”投入の『ジャングリア沖縄』で見た衝撃的な光景と、モチベーションが低い一部スタッフの現状 [ぐれ★]
- クズ「勉強頑張らなかった奴は一生DQNと一緒に肉体労働しろ」☚勉強頑張れるのも環境と巡り合わせなんだが? [783475554]
- インド料理屋に抗議に行った
- 【正論】検察「山上よ、どんな事情があろうと暴力が許されない」 [442080748]
- 熱はないけど倦怠感があるんやが
- スマホゲ問い合わせ俺「ここでこんなことしたらバグった!」返答「アカウント情報と画面のスクショと操作手順をメールで送って」
- 付き合う女って一定以上の容姿超えたら性格が大事だよな
