1

我刚刚使用 boost 文件系统库编写了一个小程序。现在它带有一些奇怪的链接错误。我已经尝试重新排序库,检查用于 boost 二进制文件的编译器版本(Boost 1.51.0;MinGW 4.7.1 静态库)和我的 MinGW 版本 - 4.7.1。

有人知道这可能是什么原因吗?

提前致谢。

链接器的输出是:

obj\Debug\main.o:在函数“ZN5boost10filesystem6existsERKNS0_4pathE”中:
C:/boost_1_51_0/boost/filesystem/operations.hpp:289: 未定义引用`boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)'
obj\Debug\main.o:在函数“ZN5boost10filesystem4pathC1IA15_cEERKT_PNS_9enable_ifINS0_11path_traits11is_pathableINS_5decayIS4_E4typeEEEvE4typeE”中: C:/boost_1_51_0/boost/filesystem/path.hpp:139: undefined reference to `boost::filesystem::path::codecvt()' obj\Debug\main.o:在函数“ZN5boost10filesystem11path_traits8dispatchISbIwSt11char_traitsIwESaIwEEEEvRKSsRT_RKSt7codecvtIwciE”中: C:/boost_1_51_0/boost/filesystem/path_traits.hpp:174: 未定义引用`boost::filesystem::path_traits::convert(char const*, char const*, std::basic_string, std::allocator >&, std::codecvt const&)'

我链接到以下库(在 Code::Blocks 构建选项中设置):

...\boost_1_51_0\stage\lib\libboost_system-mgw47-mt-d-1_51.a
...\boost_1_51_0\stage\lib\libboost_filesystem-mgw47-mt-d-1_51.a

源代码(有趣的部分,即使用boost的部分):

//... 
#define BOOST_SYSTEM_NO_DEPRECATED
#define BOOST_FILESYSTEM_NO_DEPRECATED
#include <boost/filesystem.hpp>
//...
int main()
{
boost::filesystem::path p("./file.txt");
if(boost::filesystem::exists(p)) cout //...
}
//...
4

0 回答 0