現在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によるインストールしか行ったことがないのでライブラリに影響がないか不安な状態です)
以上、上記のような不具合を経験された方、また知識のある方ご教授お願いいたします。
No.1ベストアンサー
- 回答日時:
下記
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 …
丁寧な回答有難うございました。
やはりglibc自体に手を入れる勇気がなく、ディストリビューションを変更するという形で対応しました。
また、そこで分かったのですがオプション「-lc_p」はディストリのバージョンに対応したものでもうまくいかないものがありました。
結局Cent4のglibc-profileのrpmをCent5に入れて、「-lc」オプションでやっても
それなりに処理速度を見ることができましたので、それで我慢しようかと思っています。
(本当はlcではだめなのかもしれないけど、もう少し調べてみようかと思います。)
No.2
- 回答日時:
直接の回答ではないが・・・
勉強用なら、glibc-profileがパッケージ管理システム上に存在するディストリビューションに乗り換えるという選択肢もあるのではないかと思う。
こちらで確認した限りでは、VineLinux 4.2 には存在した。
#Fedora8,CentOS5には無かった
回答有難うございました。
アドバイスいただいたとおり、ディストリビューションを変えて対応しました。
Suse10.3です。
ただ、Suseにはglibc-profileがパッケージマネージャーからインストールできたのですが、「lc_p」で作成した実行ファイルでは同じようにエラーが発生しました。
全ディストリを試す余裕がないので、ひとまずはここで落ち着こうかなと思っています。
(根性なしですいません・・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgreSQL14.6のSSL対応について 1 2023/01/05 15:42
- オープンソース コマンドプロンプトのコードの実行方法を教えて欲しい 2 2022/11/26 20:45
- UNIX・Linux Fedora37では動画編集ソフトavidemuxのバージョンは2.8.2ですがこれだとMPEG2の 1 2023/02/07 12:15
- Windows 10 前回の質問の続きです。 あの後、システムのエラーが疑われたのでインターネットで調べて、ドライブのチェ 1 2023/05/21 23:55
- Windows 10 Windows 11の累積更新プログラム KB5016629 がインストール出来ない。 2 2022/08/16 12:23
- UNIX・Linux Linux Ubuntu22.4の起動時エラーについて 2 2022/07/22 14:52
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
- UNIX・Linux VMwareにCentOSをインストールしましたが、フリーズ?状態です。 2 2023/01/01 15:37
- その他(プログラミング・Web制作) Pythonのライブラリ、randomについて 3 2022/09/20 14:30
- Windows 10 パソコンが立ち上がりません 6 2022/10/06 00:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
readline-develについて
-
よく目にするファイル名にdevel...
-
gccの使いかたについて
-
RedHat linux 7.5への xinetdの...
-
英辞郎をOSX10.9.2にインストール
-
スライドショー(速度)について
-
windows10の再インストールがで...
-
WinSCPをフォルダに入れる方法...
-
Microsoft Officeを2台目のPCに...
-
Firmware Update
-
ブルースクリーンエラーの発生...
-
pcの再起動を邪魔するものの正...
-
Apple Vision Pro に “DMM VR動...
-
Macのインストールについて
-
Windows11でoffice64bit版をイ...
-
Windows7がインストールできない
-
Apple PayのICOCAについて
-
「Volumes」というフィルダにつ...
-
Active X をインストール済かど...
-
Windows2000とWindows98のデュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
よく目にするファイル名にdevel...
-
readline-develについて
-
コンパイル時のエラーについて...
-
RedHat linux 7.5への xinetdの...
-
squidのアンインストール
-
Cygwinをいれました
-
tar.gzのファイルがインストー...
-
zlibのパス確認方法について
-
tarでインストールされたパッケ...
-
ターゲットが指定されていない?
-
Linuxの標準モジュールの格納場...
-
ccが動かない on Solaris
-
apacheのディレクトリ
-
Mozcをビルドしてインストール...
-
PHPの再インストール(RPMか...
-
Cコンパイラ(RPMパッケージ)の...
-
opensuseでファイルの検索方法
-
ソースからコンパイルしたPHPを...
-
squidのdnsserverが見つからな...
-
iperf、configure時にエラー
おすすめ情報