# Re: problem with boost 1.33 filesystem

1 message
Open this post in threaded view
|

## Re: problem with boost 1.33 filesystem

 Lewis Hyatt wrote: > Hi All, > > I apologize if this has been brought up before, but I couldn't find any > mention of it. I think the filesystem component of boost v1.33 currently > available as part of the cygwin distribution has been compiled > incorrectly. As mentioned here: > http://boost.org/libs/filesystem/doc/index.htm#Cgywin (sic), it is > necessary to compile with -DBOOST_POSIX on cygwin for POSIX emulation to > work properly; otherwise it uses Windows file names only and does not > work as expected. Here is a simple demonstration: > > //////////////////////////// > #include > #include > #include > namespace bfs = boost::filesystem; > > int main(int argc, char **argv)    { >     //arg checking omitted >     try    { >         bfs::directory_iterator di(argv[1]); >     } >     catch (bfs::filesystem_error &ex)    { >         std::cerr << ex.what() << '\n'; >     } > } > //////////////////////////// > > If you pass something Windows can handle as the argument, such as ".", > then this program works as expected. If you pass a cygwin path, such > as "~" or "/cygdrive/c", it throws an exception: > > boost::filesystem::directory_iterator constructor: "\home\Lewis": The > system cannot find the path specified. > > or > > boost::filesystem::directory_iterator constructor: "\cygdrive\c": The > system cannot find the path specified. > > I believe this is precisely the consequence of omitting -DBOOST_POSIX > but cannot confirm with certainty. > > Thanks very much to whoever maintains this. > > -Lewis It should be fixed in package version 1.33.0-2. I have built monotone and it seems to work fine with POSIX paths. Vaclav Haisman signature.asc (558 bytes) Download Attachment