On 11/28/2011 11:32 AM, Andreas Tille wrote: > On Mon, Nov 28, 2011 at 10:25:53AM +0100, Sebastian Ramacher wrote: >> There is a list of deprecated methods and their replacement at [1]. If that >> doesn't help you can try to compile with -DBOOST_FILESYSTEM_VERSION=2 for now >> [2, note at the top]. > > thanks for the helpful hint. Before I try the workaround with > BOOST_FILESYSTEM_VERSION=2 I'd like to try whether I could provide a proper > fix. Thanks to your link to the deprecated classes I was able to work around > the first problem[3]. However, a new one raised and this does not look that > simple as the first one - at least not to me as a weak C++ coder. Any help > with this: > > make[2]: Entering directory `/tmp/buildd/autodock-vina-1.1.2/build/linux/release' > g++ -pthread -ansi -Wno-long-long -O3 -DNDEBUG -I /usr/include -I ../../../src/lib -o main.o -c ../../../src/main/main.cpp > ../../../src/main/main.cpp: In function 'path make_path(const string&)': > ../../../src/main/main.cpp:50:44: error: invalid conversion from 'bool (*)(const string&) {aka bool (*)(const std::basic_string<char>&)}' to 'boost::enable_if_c<true, void>::type* {aka void*}' [-fpermissive] > /usr/include/boost/filesystem/v3/path.hpp:130:5: error: initializing argument 2 of 'boost::filesystem3::path::path(const Source&, typename boost::enable_if<boost::filesystem3::path_traits::is_pathable<typename boost::decay<Source>::type> >::type*) [with Source = std::basic_string<char>, typename boost::enable_if<boost::filesystem3::path_traits::is_pathable<typename boost::decay<Source>::type> >::type = void]' [-fpermissive] > make[2]: *** [main.o] Error 1 According to [1] the constructor path(string, name_check) is not supported anymore. It's just path(string) now. Attached is a patch to fix this and all the remaining issues (you now also need to link against boost_filesystem). The patch includes also your changes from [3]. Kind regards, >> [1] http://www.boost.org/doc/libs/1_48_0/libs/filesystem/v3/doc/deprecated.html >> [2] http://www.boost.org/doc/libs/1_48_0/libs/filesystem/v3/doc/index.htm > > [3] svn://svn.debian.org/svn/debian-med/trunk/packages/autodock-vina/trunk/debian/patches/fix_boost.patch -- Sebastian Ramacher
diff --git a/build/makefile_common b/build/makefile_common index 8ebe06c..9eee80c 100644 --- a/build/makefile_common +++ b/build/makefile_common @@ -10,7 +10,7 @@ CC = ${GPP} ${C_PLATFORM} -ansi -Wno-long-long ${C_OPTIONS} $(INCFLAGS) LDFLAGS = -L$(BASE)/lib -L. -LIBS = -l boost_system${BOOST_LIB_VERSION} -l boost_thread${BOOST_LIB_VERSION} -l boost_program_options${BOOST_LIB_VERSION}#-l pthread +LIBS = -l boost_system${BOOST_LIB_VERSION} -l boost_thread${BOOST_LIB_VERSION} -l boost_program_options${BOOST_LIB_VERSION} -lboost_filesystem${BOOST_LIB_VERSION} #-l pthread .SUFFIXES: .cpp .o diff --git a/src/main/main.cpp b/src/main/main.cpp index f49c8f5..e088208 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -47,7 +47,7 @@ using boost::filesystem::path; path make_path(const std::string& str) { - return path(str, boost::filesystem::native); + return path(str); } void doing(int verbosity, const std::string& str, tee& log) { @@ -661,7 +661,7 @@ Thank you!\n"; cpu, seed, verbosity, max_modes_sz, energy_range, log); } catch(file_error& e) { - std::cerr << "\n\nError: could not open \"" << e.name.native_file_string() << "\" for " << (e.in ? "reading" : "writing") << ".\n"; + std::cerr << "\n\nError: could not open \"" << e.name.string() << "\" for " << (e.in ? "reading" : "writing") << ".\n"; return 1; } catch(boost::filesystem::filesystem_error& e) { @@ -673,7 +673,7 @@ Thank you!\n"; return 1; } catch(parse_error& e) { - std::cerr << "\n\nParse error on line " << e.line << " in file \"" << e.file.native_file_string() << "\": " << e.reason << '\n'; + std::cerr << "\n\nParse error on line " << e.line << " in file \"" << e.file.string() << "\": " << e.reason << '\n'; return 1; } catch(std::bad_alloc&) { diff --git a/src/split/split.cpp b/src/split/split.cpp index 54c614b..de2e4ed 100644 --- a/src/split/split.cpp +++ b/src/split/split.cpp @@ -38,7 +38,7 @@ using boost::filesystem::path; path make_path(const std::string& str) { - return path(str, boost::filesystem::native); + return path(str); } std::string default_prefix(const std::string& input_name, const std::string& add) { @@ -208,7 +208,7 @@ Thank you!\n"; write_multimodel_pdbqt(tmp, ligand_prefix, flex_prefix); } catch(file_error& e) { - std::cerr << "\n\nError: could not open \"" << e.name.native_file_string() << "\" for " << (e.in ? "reading" : "writing") << ".\n"; + std::cerr << "\n\nError: could not open \"" << e.name.string() << "\" for " << (e.in ? "reading" : "writing") << ".\n"; return 1; } catch(boost::filesystem::filesystem_error& e) { @@ -220,7 +220,7 @@ Thank you!\n"; return 1; } catch(parse_error& e) { - std::cerr << "\n\nParse error on line " << e.line << " in file \"" << e.file.native_file_string() << "\": " << e.reason << '\n'; + std::cerr << "\n\nParse error on line " << e.line << " in file \"" << e.file.string() << "\": " << e.reason << '\n'; return 1; } catch(std::bad_alloc&) {
Attachment:
signature.asc
Description: OpenPGP digital signature