5

古いバージョンの gcc/g++ (4.1.3) を最新の Ubuntu (4.4.3 に付属) にインストールし、それを使用して CentOS で実行する必要がある .so をコンパイルできますか? Ubuntu バージョンの gcc でコンパイルされたバイナリは、インポート (GLIB_2_11 など) がないため、CentOS での読み込みに失敗します。C++ (例外を含む) が必要なので、既に試した glibc に対して静的にリンクすることはできません。

新しい gcc を削除せずに古い gcc をインストールできますか? 古い gcc で必要なライブラリはどうすればよいですか?

私は現在 CentOS でコードを開発していますが、使用するのはとても面倒です。本当にUbuntuデスクトップに移行したいです。

4

1 に答える 1

5

g++-4.1はUbuntuで利用できます。の代わりに実行してapt-get install g++-4.1から実行してください。ただし、古いコンパイラを使用するだけでは、ライブラリのすべての問題が解決しない場合があります。g++-4.1g++

Joachim Sauerが言ったように、最善の策は、Ubuntuで開発を行い、CentOSで最終的なコンパイルを行うことです。

C ++を使用している場合でも、静的リンクはオプションである必要があります。(ただし、CentOSでコンパイルし、ダイナミックリンクを使用する方がはるかに優れています。)

編集:仮想マシンはCentOS上に構築する最も簡単な方法ですが、VMを実行する際のメモリとCPUのオーバーヘッドを回避し、UbuntuとCentOSのカーネルの違いを気にしない場合は、以下を含むサブディレクトリを作成できます。 CentOSまたはFedoraファイルシステムとchrootは、ビルドを行うためにそれを行います。 このブログ投稿には詳細があります。

于 2010-05-04T12:30:33.667 に答える