古代カーネルを使用したLinuxでの新しいブーストライブラリのコンパイル

古代カーネルを使用したLinuxでの新しいブーストライブラリのコンパイル

uname -rカーネルバージョン2.6.18-92.1.13.el5(from)とgcc 6.1.0を使用する2016 Intel C ++コンパイラを使用するLinuxシステムで最新のブーストライブラリ(1.62.0)をコンパイルしようとしています。

新しいIntel C ++コンパイラとgccは、私のホームディレクトリのサブディレクトリにインストールされます。私はldd --versionおそらくカーネルと同じ古い古いglibcを使用していますldd (GNU libc) 2.5

スレッドモジュールで次のエラーが発生します。

In file included from libs/log/src/event.cpp(31):
/usr/include/linux/futex.h(96): error: identifier "u32" is undefined
  long do_futex(u32 *uaddr, int op, u32 val, unsigned long timeout,
                ^

これは完全な編集で唯一のエラーです。

root アクセス権がないため、コンピュータに新しいカーネルをインストールできません。

最新のLinuxヘッダをインストールするのは良い考えですか?これにより、エラーなしでBoost 1.62.0をインストールできますか?

ベストアンサー1

最初の参照で以下を見つけました。

CentOS 5.2はBoost 1.33.1に付属しています。

このハッキングにこだわるなら訪ねるべきアーカイブバージョンの改善をクリックし、バージョン1.33.1を見つけます。しかし、リリース日を参考にしてください。

バージョン 1.33.1
2006 年 12 月 5 日 12:00 GMT

yum経由でインストールする必要があるバージョンをダウンロードしたら、ホームディレクトリにビルドします。 GCC バージョンをアップグレードしないでください。インストールするツールは、システムの寿命のため、古いツールチェーンのために寿命が制限されています。

パッケージマネージャがあるすべてのシステムでは、パッケージマネージャは次のことを行う必要があります。決して障害者にならないでください。。オペレーティングシステムのアップグレードを検討する必要があります。よりここで許可された答え。カーネルがアップグレードされる前にヘッダファイルをアップグレードしないでください。復元さyumれるまでカーネルをアップグレードすることはできません。

引用する

CentOS 5.2のBoost(libboost)RPMのRPM仕様

おすすめ記事