9

C++ と Boost は初めてです。Boost Filesystem ライブラリを学習しようとする小さな単純なプログラムを実行しています。Boost ライブラリをビルドするための指示に従いました。そして今、この単純なコードをコンパイルしようとすると、これらのエラーのうち 6 つが発生します。

エラー 5 エラー LNK2038: '_MSC_VER' の不一致が検出されました: 値 '1700' は App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(codecvt_error_category の値 '1600' と一致しません.obj) ConsoleApp2  
エラー 1 エラー LNK2038: '_MSC_VER' の不一致が検出されました: 値 '1700' が App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(operations) の値 '1600' と一致しません.obj) ConsoleApp2  
エラー 2 エラー LNK2038: '_MSC_VER' の不一致が検出されました: 値 '1700' が App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(path .obj) ConsoleApp2  
エラー 3 エラー LNK2038: '_MSC_VER' の不一致が検出されました: 値 '1700' が App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(path_traits) の値 '1600' と一致しません.obj) ConsoleApp2  
エラー 4 エラー LNK2038: '_MSC_VER' の不一致が検出されました: 値 '1700' が App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(windows_file_codecvt) の値 '1600' と一致しません.obj) ConsoleApp2  
エラー 6 エラー LNK1104: ファイル 'libboost_filesystem-vc100-mt-gd-1_51.lib' を開けません C:\SOURCE\ConsoleApp2\ConsoleApp2\LINK ConsoleApp2  

App.cppConsoleApp2 プロジェクトのコード

#include <iostream>
#include <boost/filesystem.hpp>

using namespace std;
using namespace boost::filesystem;

int main(void) 
{
    path p = "C:\\TestFiles";
    cout << is_directory(p);

    return 0;
}

Visual Studio 2010 でアプリをコンパイルしようとしています。オンラインで見つけた情報の一部は VS 2012 に関連していました。これは私には当てはまらないと思います。5 つのミスマッチ エラーと最終的なリンク エラーを解決したいと思います。最後のエラーがその前の 5 に関連していることを願っています。

4

4 に答える 4

14

libboost_filesystem-vc110-mt-gd-1_51.libvc110命名規則の で示されているように、VS 2012 (VC 11.0 とも呼ばれます) でビルドされたライブラリです。このライブラリは、VS 2010 (VC 10.0 とも呼ばれます) でビルドされたオブジェクトと正しくリンクしません。

VS 2010 でプログラムをビルドする場合は、VS 2010 用のブースト ライブラリを入手またはビルドする必要があります。

于 2012-09-13T04:56:53.780 に答える