2009-05-27 8 views
15

私はqmakeが新しく、既存のアプリケーションを構築しようとしています。 Qtはもともと/usr/local/lib/Qt-4.3.5にインストールされ、 'qmake -query QT_INSTALL_PREFIX'はそのパスを返します。qmakeおよびQT_INSTALL_PREFIX。 Qtライブラリの新しい場所を選択する方法は?

私はQtライブラリを別の場所に移動し、生成されたMakefileは/ usr/local元のパスで覆われています。

Qtを再コンパイルせずにqmakeに指定した新しい場所を強制的に使用させるにはどうすればよいですか?

答えて

9

qconfig.cppからqmakeにコンパイルされた '組み込み'です。最良の方法は、別のプレフィックスでQtを再構成し、残念ながら再構築することです。他のほとんどの変数では、.qmake.cacheファイルを使用できます。詳細

+0

OPは再コンパイルせずにそれを行う方法を尋ねたので、これは答えではありません – Dana

2

としてのため

http://doc.qt.digia.com/qt/qmake-environment-reference.html

を参照してくださいQT_INSTALL_PREFIXが内蔵されており、変更することはできません、ヘンリク・ハーツによって指摘。しかし、Qtを一時的に再構築しなければならない場合は、次のように試してみてください:

qmakeはインストールプレフィックスであり、報告されたディレクトリ構造を再作成し、シンボリックリンクまたはハードリンクを使用して再配置されたQtバージョンはです。例えば。 Linux上で

  • /new/Qt/location/bin/qmake -query QT_INSTALL_PREFIXによって報告されたパスを取得します。この報告書に/Parent/Dirs/Prefixと言ってください。
  • パスの親ディレクトリを作成します。 mkdir -p /Parent/Dirs/
  • 新しい場所へのシンボリックリンク。あなたはこのQtのバージョンは、必ずしもすべての開発者に同じパスにコピーされないのQtの同じビルド済みのバージョンで動作する必要がある開発者の束を持っている場合ln -s /new/Qt/location /Parent/Dirs/Prefix上記

にも役立ちますQt共有ライブラリをバンドルするだけで、エンドユーザ向けのアプリケーション(つまり、ヘッダやビルドツールを出荷することはありません)をバンドルする必要があります。

30

これを調べて、qtをqt.confファイルでカスタマイズして(4.7.2で)動作する方法を見つけました。私の場合は

、私は、次の内容をqt4-4.7.2/bin/qt.conf(それはqmake実行ファイルと同じ場所になければなりません)

を追加しました:

[Paths] 
Prefix = c:/my_path/to/qt4-4.7.2 

とqmakeのを-queryは、適切に返す開始しましたパス!少なくともQtの5.3.1(静的5.3.1のバージョンとWindows 8上の5.5でテスト済み)ので、あなたは、単に行うことができます

参照:詳細


[更新]についてhttp://doc.qt.io/qt-4.8/qt-conf.html

[Paths] 
Prefix = .. 

どこにでもQtをインストールしてください。

+1

4.8.2 Linuxで動作しないようです... – hmn

+0

4.8.2で私にとってはうまくいきます。 qt.confは、exec'd qmakeと同じディレクトリになければなりません。一時的なディレクトリを作成し、そこに/ usr/bin/qmakeへのシンボリックリンクを作成し(そこにqmakeがある場合)、そのディレクトリにqt.confを追加することができます。 qt.confを使用していないと思われる場合は、straceなどを使ってqmakeが開こうとしているqt.confを確認してください。 – Juan

+0

私はそれを知らずに何年もQtを使ってきました! これはうまく動作します。 あなたが提供するリンクは古くなっていますが、http://qt-project.org/doc/qt-4.8/qt-conf.htmlに移動しました –