2013-09-11 6 views
8

Я загрузил, извлек и скомпилировал библиотеки Boost (включая отдельно скомпилированные библиотеки). Я использовал их процедуру установки пару раз сейчас, но я не могу заставить его делать именно то, что я хочу. Прямо сейчас, когда я устанавливаю Boost после компиляции, он переходит вУстанавливать заголовки Boost в конкретный каталог (Windows)

C:\Boost 

Это прекрасно. Скомпилированные библиотеки переходят к

C:\Boost\lib 

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

C:\Boost\include\boost-1_54\boost 

Есть ли способ использовать систему наддува сборки и установки инструментов, чтобы установить скомпилированные заголовки, которые будут установлены для всего

C:\Boost\include 

и не имеют подталкивания номер версии будет часть иерархии папок?

Я не планирую использовать несколько версий Boost одновременно, поэтому у меня нет необходимости использовать этот номер версии. Я понимаю, что смогу переместить их вручную после завершения установки, но сначала я хотел посмотреть, не забыл или не понял что-то о системе сборки Boost.

+1

Какие команды вы вызываете при создании boost? Что вы имеете в виду «предварительно скомпилированные заголовки»? –

+0

Я запустил 'bootstrap', а затем'. \ B2 -j8 --prefix = C: \ Boost --libdir = C: \ Boost \ lib --includedir = C: \ Boost \ include install'. Предварительно скомпилированные заголовки - это файлы hpp, которые не требуют компиляции для использования, файлы, которые входят в каталог include. – CraigularB

+2

Я вижу. Что вы получите, если добавить '--layout = system'? –

ответ

0

--layout=system удаляет подкаталог с версией из пути включения (в качестве указателя @IgorR).

«Удаление второго усиления в пути» - плохая идея. В респектабельной ОС (cough ...) предполагается, что файлы include для различных библиотек сосуществуют в одном общем каталоге include, поэтому подкаталог boost, чтобы избежать столкновений. Поэтому заголовки усиления обычно называются, например, #include <boost/any.hpp>, т. Е. включая, что boost/ в подкатегории.

Это делается как сторонним программным обеспечением с использованием Boost, так и Boost. Если вы удалите второй путь boost с пути, вы получите C:\Boost\include\any.hpp, и любое программное обеспечение, использующее Boost, не будет компилироваться, так как даже Boost не сможет найти его собственные.

+0

Я знаю, что этот вопрос древний, но он казался таким одиноким без ответа ... – DevSolar

Смежные вопросы