Я пытался скомпилировать imageclipper безуспешно, я уже установил opencv и boost и build-essential (версия gcc 4.6.3).
Проблема возникает при модификации Makefile, мне нужно заменить две переменные в соответствии с моей системой.
Первоначально эти переменные были такими:
CFLAGS = `pkg-config --cflags opencv` -I ~/usr/include/boost-1_36 -I.
LFLAGS = `pkg-config --libs opencv` -L ~/usr/lib -lboost_system-gcc41-mt -lboost_filesystem-gcc41-mt
Я установил boost через synaptic (установлен libboost-all-dev
), как мне найти пути установки к boost
и lboost_system-gcc41-mt
?
Редактировать: После небольшого исследования мой Makefile выглядит так:
CFLAGS = `pkg-config --cflags opencv` -I /usr/include/boost -I.
LFLAGS = `pkg-config --libs opencv` -L /usr/lib -lboost_system-mt -lboost_filesystem-mt
Теперь я получил эту ошибку:
In file included from imageclipper.cpp:43:0:
filesystem.h: In function ‘std::string fs::realpath(const string&)’:
filesystem.h:60:23: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h: In function ‘std::string fs::dirname(const string&)’:
filesystem.h:66:37: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h: In function ‘std::string fs::basename(const string&)’:
filesystem.h:72:28: error: could not convert ‘boost::filesystem3::path::leaf() const()’ from ‘boost::filesystem3::path’ to ‘std::string {aka std::basic_string<char>}’
filesystem.h: In function ‘std::vector<std::basic_string<char> > fs::filelist(const string&, const std::vector<std::basic_string<char> >&, std::string)’:
filesystem.h:129:44: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h:131:50: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h:133:50: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h:135:50: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h:137:50: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
filesystem.h:139:50: error: ‘class boost::filesystem3::path’ has no member named ‘native_file_string’
Наконец-то можно заставить его работать, просто нужно заменить native_file_string()
на string()
. А внутри basename
функция заменена return fspath.leaf()
на return boost::filesystem::basename(path)