This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

problem with boost 1.33 filesystem


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 <iostream>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/exception.hpp>
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

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]