В настоящее время я переношу один из моих проектов в GCC, и я использую проект MinGW-w64 для выполнения этого, поскольку мне требуется поддержка как x64, так и x86.C++ Build Environment с использованием MinGW-w64 и Boost.Build
Я столкнулся с проблемой при настройке моей среды сборки. В моем проекте в настоящее время используются библиотеки Boost C++, и для упрощения процесса сборки я использую Boost.Build в моем проекте (так как это упрощает интеграцию).
Под MSVC это хорошо, потому что можно сделать следующее из командной строки:
b2 toolset=msvc address-model=32 # compile as 32-bit
b2 toolset=msvc address-model=64 # compile as 64-bit
MinGW-w64 делает это «проблематичным», так как 32-битовые и 64-битовые компилированные инструменты размещены в отдельных каталогах. (C: \ MinGW32 и C: \ MinGW64 соответственно).
Возможно ли установить Boost.Build таким образом, чтобы он выбрал правильную инструментальную цепочку на основе флага адресной модели? Если нет, то каков мой следующий лучший вариант?
EDIT:
Если это поможет, я использую rubenvb 4.6.3-1 строит с сайта MinGW-w64 в «Personal Строит» папку (я использую эти сборки, в частности, как я хочу попробуйте разобрать мой код, но не компилировать - под Clang).
EDIT:
Одно из решений я просто подумали, что было бы «вручную» установить PATH, чтобы указать на правильный набор инструментов до компиляции, но это добавляет дополнительный уровень усложнения моего процессу сборки, который я бы как избежать. В идеале я хотел бы, чтобы это было так же просто, как и для MSVC, хотя я понимаю, что это может быть невозможно. В худшем случае я предполагаю, что то, что я только что предложил, будет работать, и мне просто нужно добавить скрипты, чтобы правильно установить PATH перед вызовом Boost.Build. Это означало бы hardcoding путь, который я не хочу делать ...
Есть ли способ сделать что-то подобное без добавления префикса к toolchain? Я хотел бы использовать имя привязки по умолчанию и определить 32/64-разрядную часть с помощью флага адресной модели. – RaptorFactor
, например. b2 toolset = gcc address-model = 32 – RaptorFactor
Не то, что я знаю, адресная модель, очевидно, не поддерживается в качестве аргумента для mingw-gcc. Могу ли я спросить, почему использование address-model = 32 лучше в вашем случае? – Kristofer