В настоящее время я портирую один из моих проектов на GCC, и для этого я использую проект MinGW-w64, так как мне нужны как x64, так и x86 служба поддержки.
Я столкнулся с проблемой при настройке среды сборки. В настоящее время в моем проекте используются библиотеки 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 таким образом, чтобы он выбирал правильный набор инструментов на основе флага модели адреса? Если нет, то каков мой следующий лучший вариант?
РЕДАКТИРОВАТЬ:
Если это поможет, я использую сборки rubenvb 4.6.3-1 с веб-сайта MinGW-w64 в папке «Персональные сборки» (я использую эти сборки, в частности, поскольку я хочу попытаться заставить свой код анализировать - но не компилировать - под Clang).
РЕДАКТИРОВАТЬ:
Одно из решений, о котором я только что подумал, - это «вручную» установить PATH так, чтобы он указывал на правильную инструментальную цепочку перед компиляцией, однако это добавляет дополнительный уровень сложности к моему процессу сборки, который я хотел бы избегать. В идеале я хотел бы, чтобы это было так же просто, как для MSVC, хотя я понимаю, что это может быть невозможно. В худшем случае я предполагаю, что то, что я только что предложил, сработает, и мне просто нужно будет добавить сценарии для правильной установки PATH перед вызовом Boost.Build. Однако это будет означать жесткое кодирование пути, чего я не хочу делать ...