15

現在、提供されている gcc を使用して特定の古いバージョンの Linux (SLED 10) で C++ ソフトウェアをコンパイルしていますが、新しい glibc があるため、ほとんどの新しいバージョンで実行できます。問題は、古い gcc が C++11 をサポートしていないことです。新しい機能を本当に使いたいと思っています。

今、私にはいくつかのアイデアがありますが、他の人も同じニーズを持っていると確信しています. 実際に何があなたのために働いたのですか?

アイデア:

  1. 新しいシステム上に構築し、新しい glibc への静的リンク。(ありえないですよね?)
  2. 新しいシステムでビルドし、古い glibc に対してコンパイルおよびリンクします。
  3. 更新された gcc を使用して古いシステムでビルドし、古い glibc にリンクします。
  4. 新しいシステムでビルドし、新しい glibc に動的にリンクし、RPath を設定し、glibc にインストーラーを提供します。

おまけとして、私のソフトウェアはプラグインもサポートし、SDK を備えています。私の顧客が大きな手間をかけずに私のライブラリに対してコンパイルできることを本当に望んでいます。

前もって感謝します。アイデアは歓迎され、実績のあるソリューションが優先されます。

4

1 に答える 1

2

新しい gcc でビルドします。新しいコンパイラを古いマシンにインストールするか、新しいマシンにcomileして必要な動的ライブラリを古いマシンにインストールします。

複数のバージョンの libc (および libstdc++) は、通常はバージョン管理されているため (つまり、libc.so.5、libc.so.6 など)、単一のマシンでサポートされていることに注意してください。

于 2012-07-03T22:00:29.763 に答える