Я очень новичок в использовании GNU. Я пытаюсь начать использовать библиотеку файловой системы boost, и я продолжаю получать эти ошибки. Я пытаюсь получить текущий рабочий каталог, используя boost::filesystem
.boost :: filesystem Неопределенные символы для архитектуры x86_64
Мой код:
boost::filesystem::path full_path(boost::filesystem::detail::current_path());
cout << "Current path is : " << full_path << endl;
Моя команда:
g++ -I boost_1_58_0 main.cpp -o example
Результат:
Undefined symbols for architecture x86_64:
"boost::filesystem::detail::current_path(boost::system::error_code*)", referenced from:
_main in main-1c56eb.o
"boost::system::system_category()", referenced from:
___cxx_global_var_init2 in main-1c56eb.o
"boost::system::generic_category()", referenced from:
___cxx_global_var_init in main-1c56eb.o
___cxx_global_var_init1 in main-1c56eb.o
ld: symbol(s) not found for architecture x86_64
Может кто-то пожалуйста, объясните, что спрашивает ошибка для? Что я сделал не так?
Эта команда работала и создала файл .exe. 'g ++ -I boost_1_58_0 -Lboost_1_58_0/lib/-lboost_filesystem -lboost_system main.cpp -o example'. Однако когда я запускаю файл .exe, я получаю сообщение об ошибке: 'dyld: библиотека не загружена: libboost_filesystem.dylib' –
Нашел кого-то с той же проблемой: http://stackoverflow.com/questions/15189999/error-on-boost -filesystem –
Вы также должны указать путь к библиотеке для загрузки во время выполнения. В linux перед запуском вашей программы выполняется «экспорт LD_LIBRARY_PATH =/path/to/boost/lib: $ LD_LIBRARY_PATH'». На MacOS это может быть немного иначе, я точно не знаю. –