5

Qt でアプリケーションを開発していますが、D 言語 (QtD バインディングを使用) を使用しています。私のアプリが Qt 4.7.x でクラッシュすることに気付いたので、代わりに Qt 4.6.2 を使用する必要があります。ただし、私のシステムでは Qt 4.7.2 がインストールされています。残念ながら、私は QtD を最新の Qt バージョンで動作させることも、(残念ながら) QtD 開発者を頼りにすることもありません...

アプリケーションをシステムQt 4.6.2ライブラリにインストールして使用するために必要な唯一のことですが、他のすべてのアプリケーションは引き続きQt 4.7.2を使用します。出来ますか?もしそうなら、どうやってそれを行うのですか?

4

2 に答える 2

5

The answer to your question is the version of Qt is determined by the qmake you use to generate your Makefile.

/opt/QtSDK/Qt-4.6.2/bin/qmake

/opt/QtSDK/Qt-4.7.3/bin/qmake

Each will use the library in the directory.

于 2011-05-11T13:37:10.580 に答える
1

ライブラリの複数のバージョンを 1 つのシステムにインストールすることが可能であり、すべてのパッケージ マネージャー (rpm、deb) はそのままでこれをサポートします。

これらのライブラリは、名前が異なるだけです。たとえば、id do の場合

ls /usr/lib/ | grep libcurl

私のシステムでは、次のようになります。

libcurl-gnutls.so.3
libcurl-gnutls.so.4
libcurl-gnutls.so.4.2.0
libcurl.so.3
libcurl.so.4
libcurl.so.4.2.0

というわけで、同じライブラリの異なるバージョンが共存しています。

必要な作業は、目的のバージョンの QT ライブラリにリンクすることだけです。リンカーオプションで指定する必要があります(正確なオプションを覚えていないでください)。

于 2011-05-11T10:38:36.893 に答える