Попытка скомпилировать простую программу, используя boost :: filesystem с qt:
#include <boost/filesystem.hpp>
#include <boost/range/iterator_range.hpp>
#include <iostream>
using namespace boost::filesystem;
int main() {
path p(current_path());
if(is_directory(p)) {
std::cout << p << " is a directory containing:\n";
for(auto& entry : boost::make_iterator_range(directory_iterator(p), {}))
std::cout << entry << "\n";
}
}
и файлом my .pro:
QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle
INCLUDEPATH += $$PWD/boost_1_72_0
INCLUDEPATH += $$PWD/boost_1_72_0/boost_mingw_53_32/include/boost-1_72
LIBS += "-L$$PWD/boost_1_72_0/boost_mingw_53_32/lib" \
-llibboost_filesystem-mgw49-mt-x32-1_72 \
-llibboost_filesystem-mgw49-mt-d-x32-1_72
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
Но в результате получаются следующие ошибки компоновщика:
undefined reference to `boost::filesystem::detail::current_path(boost::system::error_code*)'
undefined reference to `boost::filesystem::detail::status(boost::filesystem::path const&, boost::system::error_code*)'
undefined reference to `boost::filesystem::detail::directory_iterator_increment(boost::filesystem::directory_iterator&, boost::system::error_code*)'
undefined reference to `boost::filesystem::detail::directory_iterator_construct(boost::filesystem::directory_iterator&, boost::filesystem::path const&, unsigned int, boost::system::error_code*)'
undefined reference to `boost::filesystem::detail::dir_itr_close(void*&)'
undefined reference to `boost::filesystem::path::codecvt()
undefined reference to `boost::filesystem::path_traits::convert(wchar_t const*, wchar_t const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::codecvt<wchar_t, char, int> const&)'
Почему компоновщик не может определить определения всех этих функций? Встроенный надстройка с помощью командной строки и компилятора mingw с использованием: bootstrap .bat gcc b2 toolset = g cc link = shared --prefix = boost_mingw_53_32 install