Ответ 1
Решил.
В решении bcp были созданы файлы для проектов, однако мне нужно было скопировать каталог инструментов и корень каталога boost в место, где я скопировал все мои библиотеки, чтобы все было запущено.
Я пытаюсь настроить поднабор boost и получить его правильно скомпилированным с помощью bjam, однако я не получаю результат, который я ищу. Я работаю над окнами, используя boost 1.37.0.
Скажем, я хочу, чтобы библиотеки smart_ptr и файловая система были построены/установлены. Я намеренно выбрал библиотеку только заголовка и одну библиотеку, которая должна была скомпилировать библиотеку. Я хочу, чтобы они были встроены в структуру каталогов, подобную той, которую я бы получил, если бы я построил полную установку boost с помощью bjam (т.е. Не указывая ни один --with-libraryX), но, конечно, без всех библиотек, которые мне не интересны.
Мой первый подход заключался в использовании -with-filesystem --with-smart_ptr в bjam, однако казалось, что он не распознал smart_ptr (я безуспешно пытался smartptr и smart-ptr). Думаю, это потому, что это только библиотека заголовка.
Когда я удалил его и имел только --with-filesystem, он, похоже, скопировал все файлы заголовков библиотек на путь установки и только создал библиотеки для файловой системы. Поведение библиотеки было тем, на что я надеялся, но у меня есть тонны файлов заголовков для библиотек, которые мне не интересны в моем каталоге boost.
Мой второй подход заключался в том, чтобы использовать bcp для копирования соответствующих проектов. Это было сделано в том смысле, что я получил только проекты, о которых я заботился (и их зависимости). Однако они не предоставили никаких файлов для создания библиотек, которые были скопированы. Это означает, что мне нужно будет настроить файлы проектов для всех библиотек, которые не являются только заголовками и вручную их создают.
Итак, мой вопрос в основном, есть ли способ выборочного создания boost, который только копирует заголовки для библиотек, которые меня интересуют, и только для создания файлов библиотек для библиотек, которые не интересуются только заголовками (и повышения библиотеки зависят от курса)?
Вероятно, для этого существует множество ручных/сценариев, но если бы я мог что-то запустить, то только использование bjam было бы более полезным для меня, поскольку добавление новых библиотек или обновление до новой версии boost было бы очень простым.
EDIT: Добавлена полная командная строка для первого подхода:
bjam install --prefix=c:\temp\boostsmall
--build-dir=C:\temp\boostsmalltemp --layout=system
--with-filesystem variant=debug link=static threading=multi
runtime-link=static
Изменено scoped_ptr на smart_ptr
Решил.
В решении bcp были созданы файлы для проектов, однако мне нужно было скопировать каталог инструментов и корень каталога boost в место, где я скопировал все мои библиотеки, чтобы все было запущено.
Отличный вопрос! Я думаю, что это проблема, которую мне недавно удалось выяснить.
У меня уже были установлены полные библиотеки Boost, в том числе те, которые требуют отдельной компиляции.
Мне удалось создать подмножество библиотек Boost (regex) для конкретного приложения, над которым я работал, используя следующие шаги:
Сначала убедитесь, что исполняемый файл bcp установлен в первую очередь. В корневой папке Boost перейдите в папку tools/bcp и запустите bjam.exe здесь. Для меня это создало исполняемый файл bcp в [Boost path]\bin.v2\tools\bcp\msvc-10.0\release\link-static directory:
Затем создайте папку, в которой вы хотите, чтобы подмножество Boost находилось. Возможно, это уже была папка для проекта Visual Studio, над которым вы работаете.
Запустите созданный bcp exectubale, включив в него библиотеки, которые вы хотите включить, а также расположение корневого каталога boost и папки назначения. Обратите внимание на то, как необходимые компоненты Boost (например, для регулярного выражения) были включены в вашу папку назначения.
bcp.exe regex --boost = "C:\Program Files\boost_1_55_0\boost_1_55_0" C:\Projects\RegexProject\BoostLite
В проекте Visual Studio установите дополнительные каталоги и библиотеки Include, чтобы указать на созданную папку "Boost lite".
Одна из последних вещей, о которой я думаю, охарактеризована ранее, - мне нужно было перейти к моей обычной настройке папки Boost и скопировать нужную папку stage/lib, содержащую все файлы lib, необходимые для версии подмножества, и скопировать их здесь, только несколько связанных с regex файлов lib в моем случае.
Я обнаружил, что это сработало для меня. Любые отзывы от других людей будут оценены.
A публикация блога, описывающая то же самое, можно найти здесь.