【问题标题】:boost::filesystem3::path::codecvt() undefined referenceboost::filesystem3::path::codecvt() 未定义引用
【发布时间】:2011-03-11 02:39:55
【问题描述】:

尝试使用 boost 文件系统 3,但是当我链接时,我得到以下未定义的引用:

../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()'

我在 boost 中到处都是 grep 并且没有 wchar_t_codecvt_facet()

这是在哪里定义的?

谢谢

【问题讨论】:

    标签: c++ boost boost-filesystem


    【解决方案1】:

    也许您缺少链接库?当我 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 的一部分。我不确定您使用的是什么编译器/链接器,但如果 boost 在您的路径上正确并且您使用的是 g++,则标志 -libboost_filesystem 将起作用。

    【讨论】:

    • 没错,我一直认为 Boost 是一个纯模板库,但有些部分实际上有一个库可以链接! DUH,这是其中之一,感谢您指出。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 2011-12-19
      • 2017-01-03
      • 2021-06-18
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多