コンパイルインストールglibc
今朝dup 2関数の実装を検討してファイル記述子に関するモデルを検証しようとしたが、gdbでデバッグしたところ「/sysdeps/unix/syscal-template.S」ファイルにジャンプした.明らかにこれはシステム呼び出しのテンプレートファイルであり、これまで検討したfork関数には一定の特殊性がある(ARCH_FORKマクロでシステム呼び出しにジャンプした).だから今日はglibcコンパイルをインストールして、塩加減を食べてみましょう.
1. ./configure
一般的にこのようなソフトウェアのインストールは、3つのステップです../configureマシンの特徴に基づいて、ファイルをいくつか構成します. ./makeコンパイル、リンク生成実行可能ファイル. ./make installコンパイルしたファイルを指定したフォルダにコピーするには、一般的にこのステップに権限が必要です.
では、まず最初のステップに進み、「./configure」を直接実行すると、次のエラーが発生します.
「glibcの現在のディレクトリでconfigureを実行できない」という資料を検索したので、上記のコマンドを次のように変更しました.
コマンドを変更し、絶対アドレスに変更して試してみます.エラーは次のとおりです.
機械にgawkが入っていないので、先に入れてから試してみます.
エラーは次から次へと発生しますが、最初の問題は簡単ですが、ここでtexinfoをインストールするには、makeinfoを直接インストールする必要はありません.
2つ目の質問ですが、ここは気まずいです.エラーメッセージはLDです.LIBRARY_PATHには現在のフォルダが含まれています.しかし、私のqtはホームフォルダの下にインストールされているので、この問題を解決するには現在2つの案があります.1つ目はLD_LIBRARY_PATHを一時的に空にする.2つ目の案はまずLDをLIBRARY_PATHは永久に空にし、取り付けが終わってから変更します.
まず、最初のシナリオを試してみましょう.コマンドは次のとおりです.
はい、問題は解決されました.
2.makeの実行
このステップは何も言わずにmakeを直接実行すればいいのですが、実行時間は長いです.
エラーが発生しました.エラーも計算されないかもしれません.
makeの実行に影響しないで、先に放っておきます.
3.make installの実行
ここまで実行すれば、幸福と快楽は結末であるべきだと思っていたが、結果として以下のエラーが発生した.
またインターネットで調べたら、大変な結果になりましたね.第二歩はmake allを実行すべきだと思います.よし、すべてのものを削除してから、make allの結果を試してみましょう.
make allは上記の警告が出ていますが、この部分はmanualを装っているのを見てみました.他に必要な/bin、/include、/libは全部入っているはずです(でも私も確信していません).
はい、glibcをインストールする過程はまず皆さんに共有します.
1. ./configure
一般的にこのようなソフトウェアのインストールは、3つのステップです.
では、まず最初のステップに進み、「./configure」を直接実行すると、次のエラーが発生します.
configure: error: you must configure in a separate build directory
「glibcの現在のディレクトリでconfigureを実行できない」という資料を検索したので、上記のコマンドを次のように変更しました.
mkdir glibc-2.21-build
mkdir glibc-2.21-install
cd glibc-2.21-build
../glibc-2.21/configure --prefix=../glibc-2.21-install
の結果、次のエラーが発生しました.configure: error: expected an absolute directory name for --prefix: ../glibc-2.21-install
コマンドを変更し、絶対アドレスに変更して試してみます.エラーは次のとおりです.
*** These critical programs are missing or too old: gawk
*** Check the INSTALL file for required versions.
機械にgawkが入っていないので、先に入れてから試してみます.
*** These auxiliary programs are missing or incompatible versions: makeinfo
*** some features will be disabled.
*** Check the INSTALL file for required versions.
checking LD_LIBRARY_PATH variable... contains current directory
configure: error:
*** LD_LIBRARY_PATH shouldn't contain the current directory when
*** building glibc. Please change the environment variable
*** and run configure again.
エラーは次から次へと発生しますが、最初の問題は簡単ですが、ここでtexinfoをインストールするには、makeinfoを直接インストールする必要はありません.
2つ目の質問ですが、ここは気まずいです.エラーメッセージはLDです.LIBRARY_PATHには現在のフォルダが含まれています.しかし、私のqtはホームフォルダの下にインストールされているので、この問題を解決するには現在2つの案があります.1つ目はLD_LIBRARY_PATHを一時的に空にする.2つ目の案はまずLDをLIBRARY_PATHは永久に空にし、取り付けが終わってから変更します.
まず、最初のシナリオを試してみましょう.コマンドは次のとおりです.
export LD_LIBRARY_PATH=
はい、問題は解決されました.
2.makeの実行
このステップは何も言わずにmakeを直接実行すればいいのですが、実行時間は長いです.
エラーが発生しました.エラーも計算されないかもしれません.
*** errlist.c count 134 inflated to GLIBC_2.12 count 135 (old errno.h?)
makeの実行に影響しないで、先に放っておきます.
3.make installの実行
ここまで実行すれば、幸福と快楽は結末であるべきだと思っていたが、結果として以下のエラーが発生した.
make[2]: *** No rule to make target 'libc.texinfo', needed by '/home/andywang/glibc-2.21-build/manual/libc.info'. Stop.
make[1]: *** [manual/subdir_install] Error 2
make: *** [install] Error 2
またインターネットで調べたら、大変な結果になりましたね.第二歩はmake allを実行すべきだと思います.よし、すべてのものを削除してから、make allの結果を試してみましょう.
make allは上記の警告が出ていますが、この部分はmanualを装っているのを見てみました.他に必要な/bin、/include、/libは全部入っているはずです(でも私も確信していません).
はい、glibcをインストールする過程はまず皆さんに共有します.