2

プロジェクトで特定のバージョンの Qt4 を使用したいと考えています。私は debian を使用していますが、既に古いバージョンの Qt4 がインストールされています。CMakeLists ファイルで find_package コマンドを使用している場合、もちろん、ファイル /usr/share/cmake-2.8/Modules/FindQt4.cmake が cmake によって使用されるため、システム ライブラリが検出されます。

新しい Qt4 をリンクするためにこれまでに行ったことは、ccmake でパスを手動で編集することです。問題は、システムのディレクトリに新しい Qt4 バージョンをインストールすることが許可されていないことです。cmakeにシステムライブラリを使用しないで別のバージョンを使用するように指示する簡単な解決策はありますか? もちろん、独自のモジュールを作成して、find_package コマンドに独自のモジュールへのパスを指定することもできますが、これは煩わしく、もっと簡単な解決策が必要だと思います。

私も探したのは、FindQt4.cmake モジュールで使用される環境変数がいくつかありますが、ありません。- それで、システム ライブラリを避け、システム ディレクトリ以外にインストールされたライブラリを使用するための一般的な解決策はありますか?

4

2 に答える 2

0

Linux で異なるバージョンのライブラリを実際に使用する唯一の方法は、静的リンクを使用することです。同じライブラリの異なるバージョンを同時に使用する機能が必要な場合は、そのパラダイムをサポートする OS を使用する必要があります。Solaris (およびその派生物) は特に優れています (compile with-Lを使用してコンパイル対象のライブラリを-R指定し、実行時にそのライブラリへのパスを指定します)。BSDも同じだと思います。

それがなければ、chroot(貧乏人の BSD 監獄) を作成してアプリケーションをデプロイする必要があります。すべての依存関係のコピーを chroot にインストールし (lddそれらを見つけるために使用します)、Qt4 のコピーをインストールします。使用したい。

于 2013-01-10T07:24:10.893 に答える
0

一般的なシステム ライブラリについては知りません。Qt の場合、検索パスを qmake に設定すると、あとは qt が処理します。Qmake パスは QT_QMAKE_EXECUTABLE を介して設定されます。私は Qt コマーシャルを使用しており、これが Cmake でパスを設定する方法です。

セット(QT_QMAKE_EXECUTABLE $ENV{HOME}/QtCommercialSDK/Desktop/483/gcc-64/bin/qmake)

于 2013-01-17T16:52:58.013 に答える