2016-07-05 9 views
1

これは問題のある質問かもしれませんが、Linux上でqtプロジェクトを静的に構築する方法を試していません。私はそれがhttp://doc.qt.io/qt-5/linux-deployment.htmlで言ったことをやってみましたが、私は最初のステップを理解していません。 qtプロジェクトの場所に移動して実行すると、 LinuxにQtプロジェクトを展開する

cd /path/to/Qt 
./configure -static -prefix /path/to/Qt <otherparameters> 
make
と表示されます。そのようなファイルやディレクトリはありません。私は使用する必要のある経路を誤解していますか?私は自分のqtプロジェクトをスタンドアロンの実行可能ファイルにしたいのですが、それはqtを持つコンピュータを必要としません。私はライブラリを動的にリンクすることについて読んだことがありますが、私は本当にそれをどうするかは分かりません。 deployオプションはqtcreatorでグレー表示されていますが、これを使用する方法はありますか? ありがとう

+0

あなたがここでやろうとしているのは、Qtの独自のコピーを作ることです(BTWのように)。しかし、 '/ path/to/Qt'は本当に'/path/to/Qt Sources'です!ソースコードをダウンロードしたことを確認してください。 –

答えて

0

/path/to/Qtは、プロジェクトのものではなく、Qtのソースへのパスにする必要があります。 That sectionはQtを静的に構築することです。これは、アプリケーションをQtに静的にリンクさせる前に行う必要があります。あなたは/が/home/jxb458/qt5にソースを複製ダウンロードした場合たとえば、あなたはそれで/path/to/Qtを置き換えたい:それが動作するとき

cd /home/jxb458/qt5 
./configure -static -prefix /home/jxb458/qt5/qtbase 
make 
0

静的リンクは素晴らしいですが、それは努力することができます - 私が使用した場合は特に発見しましたGUI。 Mitchが言ったように、Qtのソースコードを実際に再構築する必要があると言いました。Notes on static building(多くのソースから派生したものです)少なくとも正しい方向に向けるべきです。あなたはおそらくUbuntuのインストールに関する部分を無視することができます - このノートは新しいインストールを前提としています。

しかし、私はこれが今すぐ展開するより良い方法だと思うので、最近はダイナミックリンクの展開に戻ってきました。 Qt dllを収集してアプリケーションでコピーする必要があるターゲットマシンにQtをインストールする必要はありません(ldd executable-nameは必要なdllのリストを生成しますが、システムではなくQtを使用します) )。プラグインの場合は、もう少しやり直す必要があります(ただし、かなり単純です)。私はこれを自動的に行うためのbashスクリプトを書いています(必要な場合はあなたに送信します)。windowsには、windeployqtというqtスクリプトがあります(理由はありません。

私が展開を検討する場所を動的にリンクする場合は、たぶん、(hello world projのように)始めるための簡単なプロジェクトを試してみてください。

関連する問題