Как настроить Qt Creator для использования Boost в Windows

Я создал проект Qt в Ubuntu, и все прошло гладко. Однако мне также нужно развернуть его в Windows. Он использует библиотеки Boost (большая проблема).

Я искал часы, чтобы найти решение, но не повезло. Я попытался установить библиотеки Boost и связать его с mingw; Кажется, я что-то пропустил. Вот что я сделал и загрузил последнюю версию:

1) запущен. \bootstrap
2) затем. \B2 --prefix = C:\boost install

Печально не установлено правильно. У меня есть только 2 папки (bin и share), но нет заголовков.

Однако здесь (http://nuwen.net/) я нашел пакет (Mingw + Boost и другие библиотеки). У этого есть все, что мне нужно.

Теперь я думаю, что проблема в файле .pro, потому что у меня много ссылок undefined. Вот .pro файл со всем, что я пробовал (некоторые прокомментировали): http://pastebin.com/pBFMTAd8

Ваша помощь приветствуется!

Ответ 1

Я сам сам решил проблему. И вот как я это сделал. Прежде всего, требуется, чтобы библиотека boost была скомпилирована с тем же компилятором, который вы используете с Qt.
Если вы используете msvc, вам повезло, потому что ребята из Boost оказали вам услугу и скомпилировали библиотеки для вас. Вы можете скачать их здесь: http://sourceforge.net/projects/boost/files/boost-binaries/.
Если вы используете mingw (который входит в комплект с Qt), вы можете сделать это:

  • добавить компилятор mingw в переменную Windows PATH:
    ~ перейдите на панель управления и найдите систему;
    ~ добавить путь mingw (например, C:\Qt\Tools\mingw\bin) к переменной PATH, добавив ';' на ваш путь (например:"; C:\Qt\Tools\mingw\bin")
  • компилировать библиотеки Boost:
    ~ unzip увеличить архив
    ~ откройте окно командной строки, зайдите в распакованную папку boost, затем перейдите в папку tools/build/v2/engine
    ~ у вас есть встроенный установщик с набором инструментов:.\build --toolset = mingw
    ~ это создаст 2 файла в папке bin.ntx86 или что-то подобное; скопируйте файлы bjam и b2 в распакованную папку boost;
    ~ теперь перейдите в папку boost и запустите ее:.\b2 --toolset = mingw --build-type = complete stage (есть хороший учебник, чтобы установить его вместе с eclipse: http://theseekersquill.wordpress.com/2010/08/24/howto-boost-mingw/)
    примечание: это займет несколько часов, поэтому может захотеть посмотреть фильм или то, что вы хотите сделать тем временем. Однако у вас есть возможность немного ускорить работу, добавив еще один аргумент команды сборки: -j N, где N - количество ядер вашего процессора.
  • Когда сборка завершена, теперь вы можете связать библиотеку с Qt. Для этого вам нужно изменить файл .pro. Сначала вам нужно будет указать Qt, где расположены заголовки, и вы делаете это, добавляя:
    INCLUDEPATH + = path_to_boost_folder, например.: INCLUDEPATH + = C:/boost_1_54_0
    ~ также, если вы используете библиотеки, для которых требуется ссылка, например системная и файловая система, вам необходимо связать их отдельно:
    LIBS + =" C:/boost_1_54_0/stage/lib/libboost_filesystem-mgw48-1_54.a",
    LIBS + =" C:/boost_1_54_0/stage/lib/libboost_system-mgw48-1_54.a"
  • после изменения файла .pro, запустите qmake, затем перестройте.

Надеюсь, это сработает и для вас!

Обновить. Иерархия папок изменилась. Для создания библиотеки необходимо прочитать документацию, связанную с каждой версией, и Документацию Boost.Build. Построение библиотеки из корневой папки проще (Building Boost 1.52 с MinGW):

C:\boost_1_60_0> bootstrap.bat mingw  
C:\boost_1_60_0> .\b2 --toolset=gcc -j N --build-type=complete

Ответ 2

Building boost не помещает заголовки, заголовки для разработчика, когда он создает новый код. Установленные dir - это двоичные файлы для распространения.

см. http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binary

это установит библиотеки, которые вы используете во время выполнения (не время компиляции). Поскольку вы добавляете эту папку bin в свой путь, и именно поэтому при запуске сборки приложения с повышением она будет работать и не сказать "не удалось найти xxx.dll"