私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレGCCについて part9
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ○
レスフィルター : (試験中)
>>834
調べてみた。自前の collect2 に -plugin オプションを指定すると
ld を見つけられなくなるらしい…どうしてだろう
○自前の collect2
[name@localhost toys]$ /home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/collect2 \
-plugin \
/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/liblto_plugin.so
collect2: 'ld' が見つかりません
○システムの collect2
[name@localhost toys]$ /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/collect2 \
-plugin \
/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/liblto_plugin.so
/home/name/usr/gcc/bin/ld: no input files
collect2: ld はステータス 1 で終了しました
調べてみた。自前の collect2 に -plugin オプションを指定すると
ld を見つけられなくなるらしい…どうしてだろう
○自前の collect2
[name@localhost toys]$ /home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/collect2 \
-plugin \
/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/liblto_plugin.so
collect2: 'ld' が見つかりません
○システムの collect2
[name@localhost toys]$ /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/collect2 \
-plugin \
/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/liblto_plugin.so
/home/name/usr/gcc/bin/ld: no input files
collect2: ld はステータス 1 で終了しました
PEX_SEARCH辺りの設定がシステムのと違ってるんじゃないか。
/home/name/usr/gcc/binをPATHにくわえても駄目なの?
/home/name/usr/gcc/binをPATHにくわえても駄目なの?
>>855
strace で見てみたら、
自前の collect2 は ld ではなく ld-new という名前を検索してた。
ln -s ld ld-new
でうまくいくようになった。(何故 ld-new なのかはわからないけど)
みんなありがとう。
strace で見てみたら、
自前の collect2 は ld ではなく ld-new という名前を検索してた。
ln -s ld ld-new
でうまくいくようになった。(何故 ld-new なのかはわからないけど)
みんなありがとう。
ld は自前の ld だよ。だから古くない。
gcc a.c -> 自前の ld を呼ぶ
gcc a.c -flto -> 自前の ld-new を呼ぶ (ld-new は存在しない)
という状況だった。だから自前の ld のそばに ld-new を作ってみたらうまくいった。
lto のプラグイン自体は存在するし呼び出されている。
gcc a.c -> 自前の ld を呼ぶ
gcc a.c -flto -> 自前の ld-new を呼ぶ (ld-new は存在しない)
という状況だった。だから自前の ld のそばに ld-new を作ってみたらうまくいった。
lto のプラグイン自体は存在するし呼び出されている。
[name@localhost ~]$ gcc -v
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
ターゲット: x86_64-unknown-linux-gnu
configure 設定: /home/name/usr/src/gcc/gcc-4.6.0/configure --prefix=/home/name/usr/gcc --enable-languages=c,c++,fortran --disable-multilib --enable-lto
スレッドモデル: posix
gcc バージョン 4.6.0 (GCC)
configure する前に gmp/ mpc/ mpfr/ と
binutils-2.21/ から bfd/ binutils/ etc/ gas/ gold/ gprof/ ld/ opcodes/ を
gcc-4.6.0/ の下にリンクしてある。
組み込み spec を使用しています。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/name/usr/gcc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
ターゲット: x86_64-unknown-linux-gnu
configure 設定: /home/name/usr/src/gcc/gcc-4.6.0/configure --prefix=/home/name/usr/gcc --enable-languages=c,c++,fortran --disable-multilib --enable-lto
スレッドモデル: posix
gcc バージョン 4.6.0 (GCC)
configure する前に gmp/ mpc/ mpfr/ と
binutils-2.21/ から bfd/ binutils/ etc/ gas/ gold/ gprof/ ld/ opcodes/ を
gcc-4.6.0/ の下にリンクしてある。
>>866
そりゃあ、binutils のディレクトリで make してるわけじゃないし。
ただソースにリンク張って、gcc のトップディレクトリで make && make install しただけ。
不味いの?
そりゃあ、binutils のディレクトリで make してるわけじゃないし。
ただソースにリンク張って、gcc のトップディレクトリで make && make install しただけ。
不味いの?
すまん。
×gcc のトップディレクトリで
×gcc のトップディレクトリを別のディレクトリで configure して
あとビルドの残骸で残ってた ld-new と、インストールされた ld のハッシュ値は同じだった。
×gcc のトップディレクトリで
×gcc のトップディレクトリを別のディレクトリで configure して
あとビルドの残骸で残ってた ld-new と、インストールされた ld のハッシュ値は同じだった。
binutilsとgccを一緒にビルドするとかやったことない、自分は
binutilsとgccを別々にビルドして
--prefixを合わせて
make install
を個別にやれば、はまらないような?
binutilsとgccを別々にビルドして
--prefixを合わせて
make install
を個別にやれば、はまらないような?
別々にするのが無難かなあ。やっぱり。
特に問題なく動いてるし、もういじるの面倒だ。
次のリリースが出たら、今度は別々にビルドしてみるよ。
特に問題なく動いてるし、もういじるの面倒だ。
次のリリースが出たら、今度は別々にビルドしてみるよ。
まあ実際にバグかもしれないな
んなけったいな入れ方しつつ、LTO使う人がいないせいで表面化しなかっただけかもしれない
んなけったいな入れ方しつつ、LTO使う人がいないせいで表面化しなかっただけかもしれない
キーボードの矢印キーが押されたかどうかを判定する関数はありますでしょうか?
linuxで、c言語です
linuxで、c言語です
>>878CUIです
stdinのバッファリング切って、読んだキャラクター列が↓かどうか調べる。
ちなみに↑↓→←と押した。
$ hexdump -C
^[[A^[[B^[[C^[[D
00000000 1b 5b 41 1b 5b 42 1b 5b 43 1b 5b 44 0a |.[A.[B.[C.[D.|
0000000d
ちなみに↑↓→←と押した。
$ hexdump -C
^[[A^[[B^[[C^[[D
00000000 1b 5b 41 1b 5b 42 1b 5b 43 1b 5b 44 0a |.[A.[B.[C.[D.|
0000000d
システムに入ってるgccが古すぎるがアップデートしてもらえないので、
自分で--prefixを指定してコンパイルし、ホーム以下に gcc を入れました。
それでコンパイルは出来たのですが、実行時に共有ライブラリがうまくリンクされません。
LD_LIBRARY_PATHを設定するラッパーを用意する以外で良い方法はありませんか?
root権限なしで出来る方法でお願いします。
あと -static はスレッド(ちなみにLinux)まわりが不整合になるので不可です。
自分で--prefixを指定してコンパイルし、ホーム以下に gcc を入れました。
それでコンパイルは出来たのですが、実行時に共有ライブラリがうまくリンクされません。
LD_LIBRARY_PATHを設定するラッパーを用意する以外で良い方法はありませんか?
root権限なしで出来る方法でお願いします。
あと -static はスレッド(ちなみにLinux)まわりが不整合になるので不可です。
ライブラリの置き場所はホームに固定でいいってこと?
それならリンカに-Lオプションでいいんじゃない?
それならリンカに-Lオプションでいいんじゃない?
一晩寝てからドキュメントをあさり
リンク時に LD_RUN_PATH を設定するか -Wl,-rpath=/hoge を指定することで
バイナリのDT_RUNPATHタグに記録され実行時に利用される、
というので、とりあえず共有ライブラリがリンクされるようになりました。
この方法であってるでしょうか?
>>886
Linuxではリンカの-Lオプションはバイナリに渡されないようです。
でもドキュメント探すときのヒントになりました。
ありがとうございます。
リンク時に LD_RUN_PATH を設定するか -Wl,-rpath=/hoge を指定することで
バイナリのDT_RUNPATHタグに記録され実行時に利用される、
というので、とりあえず共有ライブラリがリンクされるようになりました。
この方法であってるでしょうか?
>>886
Linuxではリンカの-Lオプションはバイナリに渡されないようです。
でもドキュメント探すときのヒントになりました。
ありがとうございます。
template<int> struct Example;
template<> struct Example<2>
{
template<class> static void StaticMethod(int) { }
};
template<> struct Example<3>
{
template<int> void Method(int)
{
Extern<2>::StaticMethod<int>(10);
}
};
どのバージョンか解からんが、去年ぐらいのバージョンで
こんな感じのコードをコンパイルしようとしたら、StaticMethod<int>が
比較演算子とシンボルに分解されてコンパイルエラーになってた。
いつ頃のバージョンで治ったのか知ってる人いる?
template<> struct Example<2>
{
template<class> static void StaticMethod(int) { }
};
template<> struct Example<3>
{
template<int> void Method(int)
{
Extern<2>::StaticMethod<int>(10);
}
};
どのバージョンか解からんが、去年ぐらいのバージョンで
こんな感じのコードをコンパイルしようとしたら、StaticMethod<int>が
比較演算子とシンボルに分解されてコンパイルエラーになってた。
いつ頃のバージョンで治ったのか知ってる人いる?
2011年になっても未だにJAVA使い続けてる奴ってさ
仕事で仕方なくならわかるけど
家でもJAVAやってるなら本当にバカだよね。哀れ
お前たちは本当にゴミだな
仕事で仕方なくならわかるけど
家でもJAVAやってるなら本当にバカだよね。哀れ
お前たちは本当にゴミだな
gdb を使って任意の行にブレイクポイント設定しつつ
プロンプト表示させずに
即プログラムをデバッグ実行させるにはどうしたらいいでしょうか
イメージとしては、GUIのデバッガと同じようなことがしたいのですが
(ブレイク後値参照とかいった複雑?なことはしません)
プロンプト表示させずに
即プログラムをデバッグ実行させるにはどうしたらいいでしょうか
イメージとしては、GUIのデバッガと同じようなことがしたいのですが
(ブレイク後値参照とかいった複雑?なことはしません)
GUIのデバッガ使えよ。
http://www.gnu.org/software/gdb/links/
> Sites and links related to GDB
> Graphical Interfaces and Integrated Development Environments using GDB
> (略)
http://www.gnu.org/software/gdb/links/
> Sites and links related to GDB
> Graphical Interfaces and Integrated Development Environments using GDB
> (略)
>>892
できるのか知らんけど、パイプからコマンド流し込めないの?
できるのか知らんけど、パイプからコマンド流し込めないの?
ソケットかlispですか
lisp love な教授がいたけど、
まったく共感出来なかったですね…
gdb server で進めていこうと思います
ありがとうございました
lisp love な教授がいたけど、
まったく共感出来なかったですね…
gdb server で進めていこうと思います
ありがとうございました
lispはコードを参考にすればいいだけ。
ちょっと読めば、すぐにpty使ってるのが分る。
ちょっと読めば、すぐにpty使ってるのが分る。
gcc 4.6 の、intel CPU への最適化って、どのくらいパフォーマンス上がりました?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
みんなの評価 : ○類似してるかもしれないスレッド
- GCCについて part8 (763) - [95%] - 2009/3/11 8:47 ☆
- GCCについて part10 (538) - [90%] - 2018/7/5 20:30
- 【激遅】AppleGCC【絶望】 (111) - [18446744073709551607%] - 2010/1/15 10:31
トップメニューへ / →のくす牧場書庫について