3

我正在尝试使用 boost::filesystem 中的函数来更改我当前的工作目录(并在必要时创建它)。我收到链接错误:

SBDir.cpp:(.text+0x23): undefined reference to `boost::system::generic_category()'
SBDir.cpp:(.text+0x2f): undefined reference to `boost::system::generic_category()'
SBDir.cpp:(.text+0x3b): undefined reference to `boost::system::system_category()'

但我正在链接boost库??!?我使用以下内容:

-lboost_system -lboost_system-mt -lboost_filesystem -lboost_filesystem-mt

而且我知道它可以找到它们,因为-Wl, -t我得到:

-lboost_system (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_system.so)
-lboost_system-mt (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_system-mt.so)
-lboost_filesystem (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_filesystem.so)
-lboost_filesystem-mt (/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libboost_filesystem-mt.so)

FWIW:我正在使用 gcc Ubuntu 4.4.3-4ubuntu54.4.3

4

2 回答 2

2

我在 boost 1.46(Ubuntu 11.10 标准)中遇到了同样的错误消息,我不得不添加在 11.04 和 boost 1.42 中不需要的 -lboost_system。它不会回答您的问题,但可能会通过谷歌搜索错误消息而引起其他人的兴趣。

于 2012-01-12T21:17:03.043 回答
1

所以我不知道出了什么问题——所以我尝试卸载 Ubuntu boost 包并从头开始构建它。我升级到 1.45.0,现在一切都链接了。不确定这是否是特定于版本的问题,但如果我稍后了解更多信息,我会回来更新。

于 2011-02-10T16:50:00.220 回答