如何在 Linux 上使用 Boost.Filesystem?

Posted

技术标签:

【中文标题】如何在 Linux 上使用 Boost.Filesystem?【英文标题】:How to use Boost.Filesystem on Linux? 【发布时间】:2014-03-13 15:02:36 【问题描述】:

我编写了一个创建文件夹的简单代码。问题是我无法编译它。代码如下:

#include <iostream>
#include <boost/filesystem.hpp>
int main()

  boost::filesystem::create_directories("/tmp");
  return 0;

编译:

g++ createFolder.cpp -std=c++0x -lboost_system -o createFolder

我有错误:

collect2: ld returned 1 exit status

如何更正编译过程来运行这个程序。

【问题讨论】:

如果您可以粘贴整个错误消息,而不仅仅是最后一行,那将非常有帮助。在我的系统上是:/tmp/ccXo55RP.o: 在函数boost::filesystem::create_directories(boost::filesystem::path const&amp;)': test.cpp:(.text._ZN5boost10filesystem18create_directoriesERKNS0_4pathE[_ZN5boost10filesystem18create_directoriesERKNS0_4pathE]+0x19): undefined reference to boost::filesystem::detail::create_directories(boost::filesystem::path const&, boost::system::error_code*)' collect2:错误:ld 返回 1 个退出状态 【参考方案1】:

尝试将 boost-filesystem 添加到您的链接器:

g++ createFolder.cpp -std=c++0x -lboost_system -lboost_filesystem -o createFolder

【讨论】:

以上是关于如何在 Linux 上使用 Boost.Filesystem?的主要内容,如果未能解决你的问题,请参考以下文章

boost 1.56.0 编译及使用

Mac Boost安装及使用(命令行和Xcode)

一键安装各个版本boost库(无需编译)

在 Windows 上从源代码构建点云库 Boost 时出错

Source Install MySQL5.7.20

boost1.59编译安装(可以完全安装,也可定制安装--buildtype=complete,link=static)