【发布时间】:2015-06-08 01:16:31
【问题描述】:
我正在尝试使用 Boost.Filesystem 创建一个目录(该目录可以由用户提供,因此它可能是具有嵌套目录的路径;该路径中的所有、部分或没有目录可能存在以启动)。当我运行程序时,会创建一个目录,但这不是我要求的;包含路径的字符串似乎被破坏了。我从来没有两次得到相同的结果,但目录的名称总是以冒号开头。
一个最小的例子:
#include <iostream>
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
int main(int argc, char* argv[]) {
fs::path path = "junk/morejunk";
if (!fs::create_directories(path)) {
std::cerr << "Failed to create directory " << path << ".\n";
}
return(0);
}
运行它,我得到了诸如:@K%C5?、:%C0)%E0? 和:%C0%E9%93? 之类的目录。
我在让 Boost 正确链接时遇到了一些麻烦,但上面的程序现在可以编译并运行。如果有必要,一些信息:
-- 我使用的是 Mac (OSX 10.9.4)
-- GCC 和 Boost 都与 MacPorts 一起安装(使用 +gcc49 选项进行 Boost)
-- GCC 版本 4.9.2_1
-- Boost 版本 1.57.0_1
-- 我的 Makefile 看起来像
CC = /opt/local/bin/g++
FLAGS = -I/opt/local/include -L/opt/local/lib -lboost_system-mt -lboost_filesystem-mt
driver : driver.cpp
$(CC) $(FLAGS) -o driver driver.cpp
欢迎提出任何建议;我已经有一段时间没有大量使用 C++了,而且我对 Boost 的经验不是很丰富。
【问题讨论】:
标签: c++ boost boost-filesystem