C++ 递归扫描目录中的文件
我正在尝试遍历目录,并从根开始打印所有文件的名称 下面是我在程序中使用C++ 递归扫描目录中的文件,c++,boost,boost-filesystem,C++,Boost,Boost Filesystem,我正在尝试遍历目录,并从根开始打印所有文件的名称 下面是我在程序中使用Boost::Filesystem(1.52.0)编写的简短代码片段 void testApp::getNames(const string& dirPath, string& fileExtension) { namespace fs = boost::filesystem; namespace sys = boost::system; fs::path filePath(dirPat
Boost::Filesystem
(1.52.0)编写的简短代码片段
void testApp::getNames(const string& dirPath, string& fileExtension)
{
namespace fs = boost::filesystem;
namespace sys = boost::system;
fs::path filePath(dirPath);
for(fs::recursive_directory_iterator dir(filePath), dir_end; dir!=dir_end ;++dir)
{
cout<<*dir;
}
}
我得到的错误是对boost::filesystem3::path::wchar\u t\u codecvt\u facet()的未定义引用。
我在Ubuntu 12.10上为我的项目使用代码块IDE。这是一个链接器错误。您需要链接到Boost文件系统库
在IDE中,应该有一个在项目设置中添加库的设置。(我不知道确切的位置,因为我从未使用过代码块。)这是一个链接器错误-文件系统库包含必须编译和链接的组件-它不是一个只包含头的库。你能指出必须使用的链接器标志吗?不仅仅是为了添加-lboost\u文件系统?我已经在makefile
USER\LDFLAGS=-lboost\u system
中使用了以下链接器标志。Boost::filesystemm链接器不同吗?@user1240679是的,您需要Boost\u filesystem
库,因此将-lboost\u filesystem
添加到USER\u LDFLAGS
变量中。呸!我的头撞到了这东西上,结果只剩下链接器标志了。谢谢
static const codecvt_type& codecvt()
{
return *wchar_t_codecvt_facet();
}