C++/Boost Filesystem - 检测到'_MSC_VER'不匹配:值'1700'与值'1600'不匹配

Bud*_*Joe 9 c++ boost visual-studio boost-filesystem

我是C++和Boost的新手.我正在做一个简单的小程序来尝试学习Boost Filesystem库.我按照指示构建了Boost库.现在当我尝试编译这个简单的代码时,我得到了6个这样的错误.

Error   5   error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(codecvt_error_category.obj)  ConsoleApp2  
Error   1   error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(operations.obj)  ConsoleApp2  
Error   2   error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(path.obj)    ConsoleApp2  
Error   3   error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(path_traits.obj) ConsoleApp2  
Error   4   error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1600' in App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib(windows_file_codecvt.obj)    ConsoleApp2  
Error   6   error LNK1104: cannot open file 'libboost_filesystem-vc100-mt-gd-1_51.lib'  C:\SOURCE\ConsoleApp2\ConsoleApp2\LINK  ConsoleApp2  

App.cpp在ConsoleApp2项目中的代码

#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;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用Visual Studio 2010编译应用程序.我在网上找到的一些信息与VS 2012有关.我认为这不适用于我.我想尝试解决5个不匹配错误和最终链接错误.我希望最后一个错误与之前的5相关.

Mic*_*urr 14

libboost_filesystem-vc110-mt-gd-1_51.lib是一个使用VS 2012(也称为VC 11.0)构建的库,如vc110命名约定所示.此库不能与使用VS 2010(也称为VC 10.0)构建的对象正确链接.

如果您想使用VS 2010构建程序,则需要为VS 2010获取或构建boost库.

  • http://boost.teeks99.com/为boost 1.51提供了vc11构建的库.有一条评论称它们"不受支持",但链接的消息表明不受支持的补丁看起来非常温和.轻微免责声明:我没试过. (3认同)
  • 你确定没有安装VS2012吗?在系统的命令窗口中运行`set vs11`会怎么说?你是否从可能有预建库的地方下载了boost? (2认同)