Я только что написал небольшую программу, использующую библиотеку файловой системы boost. Теперь с некоторыми странными ошибками компоновки.
Я уже попробовал переупорядочить библиотеки, проверил версию компилятора, используемую для бинарных файлов boost (Boost 1.51.0; статические библиотеки MinGW 4.7.1) и мою версию MinGW — 4.7.1.
У кого-нибудь есть идея, что еще может быть причиной этого?
Заранее спасибо.
Вывод компоновщика был:
obj \ Debug \ main.o: в функции `ZN5boost10filesystem6existsERKNS0_4pathE ': C: /boost_1_51_0/boost/filesystem/operations.hpp: 289: неопределенная ссылка на `boost :: filesystem :: detail :: status (boost :: filesystem :: path const, boost :: system :: error_code *) '
obj \ Debug \ main.o: в функции `ZN5boost10filesystem4pathC1IA15_cEERKT_PNS_9enable_ifINS0_11path_traits11is_pathableINS_5decayIS4_E4typeEEEvE4typeE ': C: /boost_1_51_0/boost/filesystem/path.hpp: 139: неопределенная ссылка на `boost :: filesystem :: path :: codecvt () ' obj \ Debug \ main.o: в функции `ZN5boost10filesystem11path_traits8dispatchISbIwSt11char_traitsIwESaIwEEEEvRKSsRT_RKSt7codecvtIwciE ': C: /boost_1_51_0/boost/filesystem/path_traits.hpp: 174: неопределенная ссылка на `boost :: filesystem :: path_traits :: convert (char const *, char const *, std :: basic_string, std :: allocator>, std :: codecvt const) '
Я связался со следующими библиотеками (заданными в параметрах сборки Code :: Blocks):
...\ Boost_1_51_0 \ этап \ Lib \ libboost_system-mgw47-т-д-1_51.a
...\ Boost_1_51_0 \ этап \ Lib \ libboost_filesystem-mgw47-т-д-1_51.a
Исходный код (интересные части, то есть части, использующие boost):
// ...
#define BOOST_SYSTEM_NO_DEPRECATED
#define BOOST_FILESYSTEM_NO_DEPRECATED
#включают <повышение / filesystem.hpp>
// ...
int main ()
{
boost :: filesystem :: path p ("./ file.txt");
if (boost :: filesystem :: exist (p)) cout // ...
}
// ...
Задача ещё не решена.
Других решений пока нет …