Hi,
I'm having killer problems with the filesystem library.
I'm compiling it with bjam "-sTOOLS=mingw", which seems to work just
fine. All the tests pass etc.
Then I wrote this simple program:
#include
#include <iostream>
using namespace std;
using namespace boost::filesystem;
int main()
{
try {
path p("c:",native);
}
catch (exception & e) {
cerr << "Error: " << e.what() << endl;
return 1;
}
cerr << "Ok" << endl;
return 0;
}
and compiled it with the Makefile:
test: test.cpp Makefile
g++ -g -I../boost/boost-compiled -I. -Wall -c test.cpp
g++ -g -Wl,-enable-stdcall-fixup -Wl,-subsystem,console -Wall -o
test.exe test.o libboost_filesystem-mgw-d-1_32.lib
g++ -g -Wl,-enable-stdcall-fixup -Wl,-subsystem,console -Wall -o
test-dll.exe test.o -L. -lboost_filesystem-mgw-d-1_3
(adjust for your paths, I copied the dlls and libs into the local dir
Just To Be Sure).
The output of running the two programs is as follows:
paul@xyz ~/test
$ ./test
Ok
paul@xyz ~/test
$ ./test-dll.exe
Error: boost::filesystem::path: invalid name "c:" in path: "c:"
Why does it behave differently depending on the linkage? If I must use
a .lib, what if it needs to be used in multiple .dlls of mine? Help?
Thanks
Paul