Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Boost::文件系统链接问题_C++_Boost_Linker - Fatal编程技术网

C++ Boost::文件系统链接问题

C++ Boost::文件系统链接问题,c++,boost,linker,C++,Boost,Linker,我在Windows7(64位)上下载并构建了boost库(1.47.0版),遵循以下步骤 现在,当我想使用Boost::Filesystem库时,我可以毫无疑问地包含头文件,它编译我的代码文件。问题出现在链接上。我得到以下错误 main.obj : error LNK2019: unresolved external symbol "class boost::filesystem3::file_status __cdecl boost::filesystem3::detail::status(c

我在Windows7(64位)上下载并构建了boost库(1.47.0版),遵循以下步骤

现在,当我想使用
Boost::Filesystem
库时,我可以毫无疑问地包含头文件,它编译我的代码文件。问题出现在链接上。我得到以下错误

main.obj : error LNK2019: unresolved external symbol "class boost::filesystem3::file_status __cdecl boost::filesystem3::detail::status(class boost::filesystem3::path const &,class boost::system::error_code *)" (?status@detail@filesystem3@boost@@YA?AVfile_status@23@AEBVpath@23@PEAVerror_code@system@3@@Z) referenced in function "bool __cdecl boost::filesystem3::exists(class boost::filesystem3::path const &)" (?exists@filesystem3@boost@@YA_NAEBVpath@12@@Z)
main.obj : error LNK2019: unresolved external symbol "private: static class std::codecvt<wchar_t,char,int> const * & __cdecl boost::filesystem3::path::wchar_t_codecvt_facet(void)" (?wchar_t_codecvt_facet@path@filesystem3@boost@@CAAEAPEBV?$codecvt@_WDH@std@@XZ) referenced in function "public: static class std::codecvt<wchar_t,char,int> const & __cdecl boost::filesystem3::path::codecvt(void)" (?codecvt@path@filesystem3@boost@@SAAEBV?$codecvt@_WDH@std@@XZ)
和链接器命令

link /debug /nologo /libpath:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64 /libpath:C:\boost_1_47_0\stage\lib /libpath:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64 /OUT:<EXE_NAME> <OBJECT_FILES>
link/debug/nologo/libpath:C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\lib\amd64/libpath:C:\boost\u 1\u 47\u 0\stage\lib/libpath:C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\lib\x64/OUT:

使用address model=64 b2命令行开关重建Boost库。这将构建64位库。

如果您在linux上,偶然发现本文正在寻找修复程序,则修复程序(至少在ubuntu 12.10上)将安装boost文件系统的开发包:

sudo apt get安装libboost文件系统dev


这将安装正确的库以链接到,并且所有功能都很好。

您能否显示一个复制错误的最小示例的代码?您的项目目标系统是什么?您是否使用相同的位构建了Boost:32位用于Win32,64位用于x64?至于您的附带问题,Boost会自动添加一个
pragma
语句,告诉链接器它需要所述的。lib关于“如何解决”部分:Boost头文件包括对Windows平台上自动链接的支持。确切的库名由各种预处理器定义组合而成,然后在
#pragma comment(lib,…)
指令中使用。我使用了“源代码简化构建”,即
boostrap\b2
链接中详细说明的命令。这很可能编译了错误的版本。抱歉,应该说,使用VS2010,已经在Q中添加了详细信息。
link /debug /nologo /libpath:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64 /libpath:C:\boost_1_47_0\stage\lib /libpath:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64 /OUT:<EXE_NAME> <OBJECT_FILES>