Attempting to compile and link the following code with a default build of 1.36 on OS X 10.5.4 (Intel)
// test.cpp
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
//#include <boost/system/error_code.hpp>
//#include <boost/system/system_error.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/path.hpp>
int main (int argc, char * const argv[])
{
boost::filesystem::create_directory("blah");
return 0;
}
results in a linker error, even though the method in question is defined inline in <boost/system/error_code.hpp> :
Undefined symbols:
"boost::system::error_code::message() const", referenced from:
boost::system::system_error::what() constin ccyMBSNr.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
This is reproducible both from a clean XCode 3.0 project and from the command line :
gcc test.cpp -I/usr/local/include -I .. -L/usr/local/lib -lboost_filesystem-xgcc40-mt -lboost_system-xgcc40-mt -lstdc++
Uncommenting the explicit includes doesn't help, either. This is a weird one...
Matthias