2013-09-01 18 views
10

私はUbuntuでQtプロジェクトを作成しました。しかし、Windows上に展開する必要もあります。 Boostライブラリを使用します(大きな問題です)。Windowsでブーストを使用するようにQt Creatorを設定する方法

私は解決策を見つけるために何時間も探してきたが、運がなかった。 Boostライブラリをインストールしてmingwとリンクしようとしました。私は何かを逃したと思う。 )ranが

1 \ブートストラップ
2)その後、\ B2 --prefix = C:ここで私がやったことで、最新のバージョンをダウンロードする。。\ブーストが

は、悲しいことに、正しくインストールされなかったインストールします。私は2つのフォルダ(ビンと共有)を持っていますが、ヘッダはありません。

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

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

あなたのご協力ありがとうございます!

+0

いくつかのエラーメッセージがいいだろう。あなたのブーストライブラリがC:/ MinGW/libにあることを確認できますか? – Greenflow

+0

私の悪い、ここにいくつかのエラーがあります:http://postimg.org/image/h4vvo8mgx/9040bd30/; C:\ MinGW \ libのパスは次のようになります。http://postimg.org/image/3lw19jdt9/ad5481f9/ – Athan

+0

.a boostライブラリのみが表示されます。 .proファイル内の何も静的ビルドを行っていることを示していません。また、このフォルダにブースト.dllファイルがありますか? – Greenflow

答えて

10

私はこの問題を自分で解決しました。そして、ここで私はそれをやったのです。まず、Qtで使用しているコンパイラと同じコンパイラを使用してboostライブラリをコンパイルする必要があります。
msvcを使用している場合は、Boostの人たちが好きでコンパイルしたライブラリを使ってくれて幸いです。ここでダウンロードすることができます:http://sourceforge.net/projects/boost/files/boost-binaries/
あなたは(Qtのとバンドルに来るん)mingwのを使用している場合は、あなたがこれを行うことができます。WindowsのPATH変数に

  • 追加mingwのコンパイラを:
    〜パネルを制御し、システムを検索するために行きます。
    〜mingwのパス(例:C:\ Qt \ Tools \ mingw \ bin)をPATH変数に ';'あなたのパスに(例: "; C:\ Qtの\ツール\ MinGWのbinに\")
  • コンパイルBoostライブラリ:
    〜解凍ブーストアーカイブ
    〜、その後、解凍したブーストフォルダに移動し、コマンドラインウィンドウを開きます
    〜mingwツールセットを使用してインストーラをビルドしました。。\ build --toolset = mingw
    〜これは、bin.ntx86などのフォルダに2つのファイルを作成します。解凍されていないブーストフォルダ内のファイルbjamとb2をコピーします。
    〜ブーストフォルダに入ってビルドを開始:\ b2 --toolset = mingw - ビルドタイプ=完全なステージ(eclipseと一緒にインストールするには良いチュートリアルがあります:http://theseekersquill.wordpress.com/2010/08/24/howto-boost-mingw/
    注:数時間、映画を見たり、その間にやりたいことがあります。しかし、buildコマンドに別の引数を追加することで、少し高速化することができます。-j Nここで、Nはプロセッサのコア数です。
  • ビルドが完了したら、ライブラリをQtにリンクすることができます。これを行うには、.proファイルを変更する必要があります。まず、Qtにヘッダがどこにあるのかを伝える必要があります。追加するには、次のようにします:
    INCLUDEPATH + = path_to_boost_folder :INCLUDEPATH + = C:/ boost_1_54_0
    〜システムやファイルシステムなどのリンクが必要なライブラリを使用している場合は、別途リンクする必要があります。
    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.a"
  • .proファイルを変更した後、qmakeを実行してから再構築します。

これはあなたにも役立ちます。

更新:フォルダ階層が変更されています。ライブラリを構築するには、各バージョンに関連するドキュメントとBoost.Build's documentationを読んでください。 ルートフォルダからライブラリを構築する(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 
0

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

は(コンパイル時ではない)、これは、実行時に使用するライブラリを、インストールしますhttp://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binary

を参照してください。あなたはこのbinフォルダをあなたのパスに追加するので、アプリケーションビルドを実行するとboostが実行され、 "xxx.dllを見つけることができませんでした"というメッセージは表示されません。

関連する問題