将错误与boost文件系统链接

时间:2013-02-15 20:27:01

标签: c++ boost mingw codeblocks mingw32

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

有人知道其他原因可能是什么?

提前致谢。

链接器的输出是:

obj\Debug\main.o: In function `ZN5boost10filesystem6existsERKNS0_4pathE':
C:/boost_1_51_0/boost/filesystem/operations.hpp:289: undefined reference to `boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)' 
obj\Debug\main.o: In function `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: In function `ZN5boost10filesystem11path_traits8dispatchISbIwSt11char_traitsIwESaIwEEEEvRKSsRT_RKSt7codecvtIwciE': C:/boost_1_51_0/boost/filesystem/path_traits.hpp:174: undefined reference to `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 //...
}
//...

0 个答案:

没有答案