与Boost.Filesystem链接时出现问题

时间:2011-02-10 15:33:56

标签: gcc linker-errors boost-filesystem

我正在尝试使用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

2 个答案:

答案 0 :(得分:2)

我有与boost 1.46(Ubuntu 11.10的标准)相同的错误消息,我不得不添加-lboost_system,我在11.04中不需要并且增强1.42。它没有回答你的问题,但可能通过谷歌搜索错误信息引起其他人的兴趣。

答案 1 :(得分:1)

所以我无法弄清楚出了什么问题 - 所以我尝试取消安装Ubuntu boost包并从头开始构建它。我升级到1.45.0&现在一切都链接。不确定这是否是特定于版本的问题,但如果我稍后了解更多,我会回来更新。