我是 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
My code in App.cpp
in my ConsoleApp2 project
#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 个错误有关。
最佳答案
libboost_filesystem-vc110-mt-gd-1_51.lib
是一个使用 VS 2012(也称为 VC 11.0)构建的库,如 vc110
在命名约定中。此库将无法与使用 VS 2010(也称为 VC 10.0)构建的对象正确链接。
如果您想使用 VS 2010 构建程序,则需要获取或构建 VS 2010 的 boost 库。
关于C++/Boost 文件系统 - 检测到 '_MSC_VER' 不匹配 : value '1700' doesn't match value '1600' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12398809/