プロが教えるわが家の防犯対策術!

現在LinuxでCのプログラミングを勉強中です。環境はCentOS5です。
書籍を読みながら勉強しているところ、処理のスピードを解析するglibc-profileというものが出てきました。
ただしyumではこれのインストールパッケージは存在せず、
ためしにネット上からglibc-profile-2.3.6-3.i386.rpmをダウンロードしてインストール、その後、以下のオプションでコンパイルした実行ファイルが実行時に失敗します。
「cc -Wall -g -pg <ソース> -o <実行ファイル名> -lc_p」

#具体的には浮動小数点演算不正のようなメッセージが出て
#エラーとなります。
#-lc_pオプションをつけなければ正常に動作するプログラムです。

教えていただきたいことは以下です。
(1)glibc-profile-2.3.6-3.i386.rpmはCentOS5にインストールして妥当なものなのか

(2)-pl_cオプションを使用してエラーとなるのはglibc-profileのバージョンが原因なのか、それともコンパイル方法やソースがまずいのか
(ソースコード自体も返信いただければお見せます。)

(3)glibcのソースコードからのライブラリ再構築の方法について
(正直rpmによるインストールしか行ったことがないのでライブラリに影響がないか不安な状態です)

以上、上記のような不具合を経験された方、また知識のある方ご教授お願いいたします。

A 回答 (2件)

下記


GNUプロファイラーによるコード処理速度の向上によると
gcc example1.c -g -pg -o example1 -O2 -lc_p
てな感じですが 文章にもありますが
(libc_p.a)がコンパイルされたCライブラリーでないと動きません
CentOsは、glibcのコンパイルオプションで生成させてないんだとおもいます。
これは、仕様でしょう。
経験からいわせてもらいますと
もしもsrpmなどのソースをいじって
glibcをさわるきになるのでしたら、環境が破壊されてものいい覚悟でされることです。
>glibc-profile-2.3.6-3.i386.rpm
出所はよくわかりませんがCentOS 4とかものでしたら
それは、古いglibcのlibc_p.aですので、不整合です
つかえません。

参考URL:http://www.ibm.com/developerworks/jp/linux/libra …
    • good
    • 0
この回答へのお礼

丁寧な回答有難うございました。
やはりglibc自体に手を入れる勇気がなく、ディストリビューションを変更するという形で対応しました。
また、そこで分かったのですがオプション「-lc_p」はディストリのバージョンに対応したものでもうまくいかないものがありました。
結局Cent4のglibc-profileのrpmをCent5に入れて、「-lc」オプションでやっても
それなりに処理速度を見ることができましたので、それで我慢しようかと思っています。
(本当はlcではだめなのかもしれないけど、もう少し調べてみようかと思います。)

お礼日時:2008/03/21 00:07

直接の回答ではないが・・・



勉強用なら、glibc-profileがパッケージ管理システム上に存在するディストリビューションに乗り換えるという選択肢もあるのではないかと思う。
こちらで確認した限りでは、VineLinux 4.2 には存在した。
#Fedora8,CentOS5には無かった
    • good
    • 0
この回答へのお礼

回答有難うございました。
アドバイスいただいたとおり、ディストリビューションを変えて対応しました。
Suse10.3です。
ただ、Suseにはglibc-profileがパッケージマネージャーからインストールできたのですが、「lc_p」で作成した実行ファイルでは同じようにエラーが発生しました。
全ディストリを試す余裕がないので、ひとまずはここで落ち着こうかなと思っています。
(根性なしですいません・・・)

お礼日時:2008/03/21 00:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!