2011-03-11 29 views
1

试图用提高文件系统3,但是当我联系,我得到以下未定义的参考:的boost :: filesystem3 ::路径::的codecvt()未定义参考

../myfile-g.o: In function `boost::filesystem3::path::codecvt()': 
../boost/filesystem/v3/path.hpp:377: undefined reference to 
`boost::filesystem3::path::wchar_t_codecvt_facet()' 

我在升压grep'd无处不在,没有wchar_t_codecvt_facet()

这是在哪里定义的?

谢谢

回答

3

也许你错过了一个链接库?当我grep为它时,我得到:

filesystem/v3/path.hpp:371 return *wchat_t_codecvt_facet(); 
filesystem/v3/path.hpp:462 static const codecvt_type *& wchar_t_codecvt_facet(); 

这是在macosx上的boost 1.44。由于该函数是在头文件中定义的,它应该是libboost_filesystem的一部分。我不确定你使用的是什么编译器/链接器,但是如果升级在你的路径上正确,并且你使用的是g ++,标志-libboost_filesystem就可以工作。

+0

没错,我一直认为Boost只是一个模板库,但有些部分实际上有一个lib链接进来!杜哈,这是其中之一,谢谢你指出。 – 2011-03-11 17:35:58

+0

没问题,我希望它能正常工作。 – GWW 2011-03-11 18:24:16

2

尝试为更新版本的boost库添加-lboost_filesystem

+0

谢谢,这是为我做的。 – Gubatron 2014-09-07 02:09:34