Форум программистов, компьютерный форум, киберфорум
Peoples
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

Сборка Boost для MinGW

Запись от Peoples размещена 07.08.2017 в 16:25
Показов 7920 Комментарии 0

Сборка Boost для MinGW

Для начала надо скачать одно из версии Boost c официального сайта (http://www.boost.org). Я выбрал текущую релизную версию 1.64.0 для Windows (https://dl.bintray.com/boostor... 1_64_0.zip).

После завершения скачивания, распаковываем архив в любую папку (Допустим, я создал папку Boost1_6_4). Тогда в моём случае путь будет
C:\Boost1_6_4\boost_1_64_0

Важно

Путь к вашему компилятору должен быть прописан в переменной окружения PATH, вашей ОС.
Если все пути прописаны, то идём дальше. В противном случае, читаем инструкцию, помеченную как спойлер.

Кликните здесь для просмотра всего текста

Переменная PATH — это системная переменная, которую операционная система использует для того, чтобы найти нужные исполняемые объекты в командной строке или окне терминала.

Инструкция для Windows 7

1. В меню Пуск выберите пункт Компьютер

2. В контекстном меню выберите пункт Свойства системы

3. Выберите Дополнительные параметры системы > вкладку Дополнительно

4. Выберите Переменные среды, в меню Системные переменные. Там в списке найдите PATH. Выделите её и нажмите
Изменить.

В окне ввода надо прописать (дописать в конец, через ; если там уже что-то есть) путь к компилятору (Мой пример)
D:\Qcreat\5.5\mingw492_32\bin;D:\Qcreat\Tools\mingw492_32\bin
См. скриншот.

Если такой переменной нет, то её легко создать:
Пункт "Создать" и ввести "PATH" в качестве имени переменной, а также добавить наш путь (который приведён выше) в качестве значения переменной.


Сборка

Открываем консоль (Командную строку) и переходим в папку с Boost'ом. Можно это сделать 2 способами:

1. Открываем папку с boost'ом. Далее shift+ правая кнопка мыши, в контекстном окне выбираем Открыть окно команд , после этого откроется консоль по нужному пути.

2. Открываем консоль и пишем

cd C:\Boost1_6_4\boost_1_64_0

Затем, чтобы собрать данный инструмент для MinGW выполняем следующую команду в консоле:

bootstrap.bat gcc

После этого ждём какое-то время.

(bootstrap.bat - это батник для сборки инструмента bjam, который предназначен для управления компиляцией библиотек под целевой компилятор)

После того, как инструмент будет собран выполняем сборку всех необходимых библиотек с помощью команды:

b2 toolset=gcc link=shared --prefix=boost_mingw_550 install

Ожидаем завершение сборки (Это может занять какое-то время, в зависимости от вашего компьютера. Я ждал примерно 20 минут).

Небольшое пояснение:

b2 - запускает сборку. В старых версиях Boost команда b2 может не работать, тогда попробуйте bjam

toolset - это инструментарий, которым будут собираться библиотеки (тип компилятора, участвующий в сборке). В нашем случае, для mingw указывается gcc.

link - это тип библиотек(shared - динамические)

--prefix - папка куда будут скопированы заголовочные файлы и собранные библиотеки ( у меня папкаboost_mingw_550)


Подключение к проекту

Нам необходимы необходимых заголовочные файлы и библиотеки:

INCLUDEPATH - подключаем заголовочные файлы

LIBS - подключаем библиотеки

Далее пишем в .pro файл следующее:

C++ (Qt)
1
2
INCLUDEPATH += C:/Boost1_6_4/boost_1_64_0/boost_mingw_550/include/boost-1_64
LIBS += -LC:/Boost1_6_4/boost_1_64_0/boost_mingw_550/lib -llibboost_system-mgw49-mt-1_64 -lws2_32
-llibboost_system-mgw49-mt-1_64 -lws2_32 - нам потребуется для линковки boost::asio.
Название нужных файлов можно посмотреть в boost_mingw_550/lib/
(как вариант можно попробовать просто -llibboost_system -lws2_32, но может не сработать и дать ошибку)

Запустить пример
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Рекомендую инклуды связанные с буст писать именно первыми, иначе могут возникнуть ошибки
 
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/locale.hpp>
#include <QApplication>
#include <QtCore>
#include <QtWidgets>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    
    boost::asio::io_service io;
    boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
    t.wait();
    
    return a.exec();
}
Миниатюры
Нажмите на изображение для увеличения
Название: path.JPG
Просмотров: 774
Размер:	43.4 Кб
ID:	4329  
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru