2016-09-14 8 views
0

私は、BOOSTを必要とするビルドしようとしている外部のC++コードベースを持っています。私はVS2015コミュニティ版を持っており、コマンドラインからビルドしようとしています。ウィンドウをリンクしてコマンドラインのアーキテクチャタイプの問題でブーストするC++プロジェクト

私は、このコマンドを使用してブーストをダウンロードして構築された:

.\b2 toolset=msvc-14.0 --build-type=complete --abbreviate-paths architecture=64 address-model=64 install -j4 

私は、このようなプロジェクト構築しようとしています:

cl /EHsc -I "C:\Users\alex\Documents\boost_1_60_0" myproj_helper.cpp main.cpp /link /LIBPATH:"C:\Boost\lib" /out:program.exe 

私はこれを行うと、私は次のエラーを取得するが。

libboost_thread-vc140-mt-s-1_60.lib(thread.obj) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86' 

私は、これは私が建築または何についてのCLを与える必要があり、引数が不足していた場合、私は間違ってブーストを構築し、異なる設定を再構築する必要があるかを意味している場合を確認していません。私はWindows 10の家庭64ビットマシンです。これをどうやって解決するのですか?

答えて

1

あなたは建築物x64を使ってブーストを構築しています。問題は、デフォルトのアーキテクチャx86でプロジェクトをビルドしていることです。このアーキテクチャは、リンク時にBoostと競合します。 this documentationを使用すると、コマンドラインで環境を設定してx64アーキテクチャを使用できます。

  1. 作業ディレクトリなどの所望のMSVCのバージョンのVCディレクトリを設定します。

    cd "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"

  2. を実行し、この魔法のバッチスクリプト(デフォルト、およびamd64_armあるamd64_x86もあります)

    vcvarsall amd64

あなたがx86のために構築することを目的とした場合、あなたは意志ブーストを設定してx86にする必要があります。私が言ったように、これは互換性のあるMSVCのデフォルトです。

+0

これはうまくいきました。ありがとうございます。あなたが私を救った時は、私がnoob質問のために得るdownvotesの価値がある:) – asutherland

関連する問題