Просмотр полной версии : подключение boost и в частности regex
скачал буст, есть вопросы:
- не пойму как его скомпилить на mingw (винда xp)
- можно ли скомпилить/подключить только regex (больше пока ничего не надо)
- есть нормальный русский туториал по сборке и подключению буста к eclipse с mingw в винде?
в корне лежит booststrap.bat . его запускаешь - должен появиться bjam.exe там же в корне. дальше батник в корне типа build.bat. содержимое типа такого
bjam --j2 --build-dir=I:\programming\boost_1_39_0\build_dir toolset=msvc --build-type=complete stage
pause
соответственно пути и тулсет меняешь на свои. j2 - два ядра вроде как. stage - куда компилить. type - какие либы компилить. советую полностью компилить, во первых меньше копания в доках, во вторых - потом если захочется что нить попробовать еще из буста - не придется опять вспоминать как компилить.
А подключать - добавь папку с хидерами в глобальные папки, которые по #include<> юзаются, и папку с либ файлами. В студии это пункт project directorys или как там оно.
ПС. компилил хзкогда версию 1.39. в 1.4 мож че изменилось, но не думаю.
Эмм а не проще ли для парсинга использовать библиотеку PCRE ? у меня с ней сложностей не возникло да и к исходной программе она добавляет всего несколько килобайт.
toolset=gcc для mingw
в tools/bcp лежит программа в исходниках и с документацией по "выкусыванию" нужной библиотеки из boost'a
j2 - два ядра вроде как.
задает количество потов для сборки, вообще принято ставить два потока на процессор/ядро )
- не пойму как его скомпилить на mingw (винда xp) bjam.
можно ли скомпилить/подключить только regex (больше пока ничего не надо) да
есть нормальный русский туториал по сборке и подключению буста к eclipse с mingw в винде? 1) Программист ОБЯЗАН знать английский.
2) Это очевидное действие. Так же, как и любую другую либу.
Программист ОБЯЗАН знать английский
да я его знаю, но когда в теме вообще ничего непонятно, гораздо легче начать с русского.
поздно, уже скомпилил) подключаю
буст скомпилился, инклуды закинул в мингв
но вот непонятно как подключить библиотеку к эклипсу
в мингв/libs у меня все файлы *.a
а буст скомпилил *.dll и *.lib
либ не находит
ld.exe: cannot find -lboost_regex-mgw34-mt.lib
что делать? у меня винда
компилить как-то именно libboost_regex-mgw34-mt.a
или подключать libboost_regex-mgw34-mt.lib ?
в мингв/libs у меня все файлы *.a
а буст скомпилил *.dll и *.lib
либ не находит
ld.exe: cannot find -lboost_regex-mgw34-mt.lib
что делать? у меня винда
компилить как-то именно libboost_regex-mgw34-mt.a
или подключать libboost_regex-mgw34-mt.lib ?
так просто переименуй *.lib в *.a ; в windows, по-моему, такая команда
ren *.lib *.a
просто так нельзя переименовывать. если не заметили - в имени либ файла есть сокращения типа mt итп. mt - multithreaded версия. так же дебаг версии, и сингл тред. выбор либ файла должен осуществляться автоматом в зависимости от настроек компиляции проекта. Поэтому подключать надо не конкретные файлы, а всю папку с lib файлами, чтобы линкер и компиль могли получать нужные файлы.
да, еще в файле не спроста указываются циферки версии. так что подлключать нада всю директорию.
просто так нельзя переименовывать. если не заметили - в имени либ файла есть сокращения типа mt итп. mt - multithreaded версия. так же дебаг версии, и сингл тред. выбор либ файла должен осуществляться автоматом в зависимости от настроек компиляции проекта. Поэтому подключать надо не конкретные файлы, а всю папку с lib файлами, чтобы линкер и компиль могли получать нужные файлы.
да, еще в файле не спроста указываются циферки версии. так что подлключать нада всю директорию.
Изменяется просто расширение файла. Это из-за особенностей компилятора gcc, который думает, что библиотеки имеют расширение .a
Указываешь флаг -lboost_regex-mgw34-mt.lib а ищется boost_regex-mgw34-mt.lib.a
Указываешь флаг -lboost_regex-mgw34-mt ищется boost_regex-mgw34-mt.a
ну если посмотреть на описание ошибки, которое дикс дал выше, то ищется как раз lib файл, а не "a'
либ не находит
ld.exe: cannot find -lboost_regex-mgw34-mt.lib
Когда линкуешь либу ключем -l указывается только имя либы без префикса lib и без расширения a\lib, например либа libssl.a линкуется -lssl
Поясняю.
Дело в том что указан флаг компилятора -l
Который указывает компилятору gcc искать библиотеку "boost_regex-mgw34-mt.lib", и которая по мнению компилятора должна лежать в файле "boost_regex-mgw34-mt.lib.a"
Извиняюсь что поднимаю старую тему...
Вопрос к тем кто компилировал regex(только его) с помощью bjam...
Это нормально, что при компиляции regex'a параллельно также создаются и какие-то математические библиотеки?
з.ы. и сколько примерно по времени должен создаваться этот regex? я на 5 мин комп оставил, прихожу, а он все ещё штампует...
з.ы.ы. может я неправильно использую bjam?bjam toolset=gcc regex stage
Извиняюсь что поднимаю старую тему...
Вопрос к тем кто компилировал regex(только его) с помощью bjam...
Это нормально, что при компиляции regex'a параллельно также создаются и какие-то математические библиотеки?
з.ы. и сколько примерно по времени должен создаваться этот regex? я на 5 мин комп оставил, прихожу, а он все ещё штампует...
з.ы.ы. может я неправильно использую bjam?bjam toolset=gcc regex stage
Не знаю сколько один регексп,но все вместе минут 15-20, на 3гигах ОЗУ.
И у меня так и не получилось вытащить один регексп,все равно компилился весь,игнорировал команды.
Понятно, спасибо за информацию.
... у меня 1 гиг, так что пойду отдохну часок другой от компа ^^ ...
Плохо смотрел доки...
Чтобы скомпилить отдельный компонент нужно добавить ключ --with-libnamebjam toolset=gcc --with-regex stage
http://www.boost.org/doc (http://www.boost.org/doc/libs/1_42_0/more/getting_started/windows.html#invoke-bjam)
limiting which libraries get built with the --with-library-name or --without-library-name options
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot