【发布时间】:2012-09-06 02:25:34
【问题描述】:
我是 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 中的值“1600”不匹配(操作.obj) ConsoleApp2 错误 2 错误 LNK2038:检测到“_MSC_VER”不匹配:值“1700”与 App.obj C:\SOURCE\ConsoleApp2\ConsoleApp2\libboost_filesystem-vc110-mt-gd-1_51.lib 中的值“1600”不匹配(路径.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我在 ConsoleApp2 项目中 App.cpp 中的代码
#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 个有关。
【问题讨论】:
-
可能在构建库时,您应该将
toolset选项指定为10.0。由于是用VS 2012编译的,默认采用11.0。这会强制库仅与 VS 2012 一起使用。这不是我的经验。如果您希望在 VS 2010 中使用它,请将工具集选项指定为 10.0,这样库就会正确构建。 -
这里有非常相似的回答问题:stackoverflow.com/questions/19575747/…
标签: c++ visual-studio boost boost-filesystem