11

Ubuntu で Qt プロジェクトを作成したところ、すべてがスムーズに進みました。ただし、Windows にもデプロイする必要があります。Boostライブラリを使用しています(大きな問題)。

解決策を見つけるために何時間も探していましたが、運がありませんでした。Boost ライブラリをインストールして mingw にリンクしようとしました。私は何かを逃したと思います。ここに私がしたことと最新バージョンのダウンロードがあります:

1) .\bootstrap を実行
2) 次に .\b2 --prefix=C:\boost install

残念ながら正しくインストールされませんでした。2つのフォルダー(binとshare)しかありませんが、ヘッダーはありません。

ただし、ここ ( http://nuwen.net/ ) でバンドル (Mingw+Boost およびその他のライブラリ) を見つけました。これは私が必要とするすべてを持っています。

未定義の参照がたくさんあるので、問題は .pro ファイルだと思います。これが私が試したすべての.proファイルです(一部コメントあり): http://pastebin.com/pBFMTAd8

あなたの助けに感謝します!

4

2 に答える 2

12

私は自分で問題を解決しました。そして、これが私がそれをした方法です。まず、Qt で使用しているのと同じコンパイラでコンパイルされたブースト ライブラリが必要です。
msvc を使用している場合は、Boost の担当者がライブラリをコンパイルしてくれたため、幸運です。これらはhttp://sourceforge.net/projects/boost/files/boost-binaries/からダウンロードできます。
mingw (Qt にバンドルされています) を使用している場合は、次のようにすることができます。

  • mingw コンパイラを Windows PATH 変数に追加します。
    ~ コントロール パネルに移動し、System を検索します。
    ~ ';' を追加して、mingw のパス (例: C:\Qt\Tools\mingw\bin) を PATH 変数に追加します。あなたのパスに (例: ";C:\Qt\Tools\mingw\bin")
  • Boost ライブラリをコンパイルします:
    ~ Boost アーカイブを解凍 します
    ~ コマンド ライン ウィンドウを開き、解凍した Boost フォルダに移動し、フォルダ tools/build/v2/engine に移動します
    ~ mingw ツールセットでインストーラをビルドします: .\build --toolset= mingw
    ~ これにより、フォルダー bin.ntx86 または同様のフォルダーに 2 つのファイルが作成されます。解凍したブースト フォルダーにファイル bjam と b2 をコピーします。
    ~ 次に、boost フォルダーに移動して、ビルドを開始します: .\b2 --toolset=mingw --build-type=complete ステージ (Eclipse と一緒にインストールするための優れたチュートリアルがあります: http://theseekersquill.wordpress.com/2010 /08/24/howto-boost-mingw/ )
    注:これには数時間かかるので、その間に映画を見たり、やりたいことをしたりすることができます. ただし、ビルド コマンドに別の引数 -j N を追加することで、処理を少し高速化するオプションがあります。ここで、N はプロセッサのコア数です。
  • ビルドが完了したら、Qt でライブラリをリンクできるようになりました。これを行うには、.pro ファイルを変更する必要があります。
    最初に、ヘッダーがどこにあるかをQt に伝える必要があります。これは、以下を追加して行い
    ます。それらを個別にリンクする必要があるファイルシステム
    : LIBS += "C:/boost_1_54_0/stage/lib/libboost_filesystem-mgw48-1_54.a", LIBS
    += "C:/boost_1_54_0/stage/lib/libboost_system-mgw48-1_54. 」
  • .pro ファイルを変更した後、qmake を実行してから再構築します。

これがあなたにとってもうまくいくことを願っています!

更新: フォルダー階層が変更されました。ライブラリをビルドするには、各バージョンに関連するドキュメントとBoost.Build のドキュメントを読む必要があります。ルート フォルダーからライブラリをビルドする方が簡単です ( Building Boost 1.52 with MinGW ):

C:\boost_1_60_0> bootstrap.bat mingw  
C:\boost_1_60_0> .\b2 --toolset=gcc -j N --build-type=complete
于 2013-09-11T13:56:13.863 に答える
0

ブーストを構築してもヘッダーは配置されません。ヘッダーは、開発者が新しいコードを作成するときのものです。インストールされたディレクトリは、配布用のバイナリです。

http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binaryを参照してください

これにより、(コンパイル時ではなく) 実行時に使用するライブラリがインストールされます。このbinフォルダーをパスに追加するため、ブーストでアプリビルドを実行すると実行され、「xxx.dllが見つかりませんでした」とは表示されません

于 2013-09-01T20:38:40.560 に答える