Ефективна компіляція OpenSSL з використанням кількох ядер за допомогою Conan

Ефективна компіляція OpenSSL з використанням кількох ядер за допомогою Conan

8 Березня 2024 в 19:25 23

Ми використовуємо Conan для компіляції більшості наших залежностей протягом певного часу. Він працює чудово, але коли ми оновлюємо одну залежність до останньої версії, Conan компілює її, використовуючи лише одне ядро, і це може зайняти досить багато часу на моєму ноутбуці.

Як я можу здійснити компіляцію, використовуючи всі ядра, які є на моєму комп’ютері? Загальна відповідь була б цінною, але якщо існує яка-небудь конкретна хакерська техніка для Windows, я також буду радий.

В даний момент моя командна строка виглядає так:

Здається, мені не вистачає якогось магічного заклинання, подібного -s compiler.multithread=true, але я не можу знайти жодного прикладу цієї проблеми ніде в документації, і Google також не допомагає.

Щоб компілювати OpenSSL за допомогою Conan з використанням кількох ядер, можна вказати кількість ядер, які слід використовувати під час компіляції. На жаль, в Conan не існує конкретного прапорця, подібного -s compiler.multithread=true, для включення багатопотокової компіляції безпосередньо.

Проте цього можна досягти, встановивши змінні середовища перед запуском команди conan install.

Для Windows можна встановити змінну середовища MAKEFLAGS, щоб вказати кількість ядер, які слід використовувати. Ось як ви можете змінити вашу команду:

Замініть N на кількість ядер, які ви хочете використовувати для компіляції. Наприклад, щоб використовувати всі доступні ядра, ви можете встановити N на кількість логічних ядер на вашому комп’ютері.

Для систем Unix-подібних систем можна встановити змінні середовища MAKEFLAGS або CONAN_MAKE_PROGRAM аналогічним чином.

Встановивши змінну середовища MAKEFLAGS, ви інструктуєте базову систему збірки (наприклад, Make) використовувати кілька ядер під час компіляції, що значно прискорює процес.

З цими змінами Conan буде використовувати кілька ядер для компіляції OpenSSL та інших залежностей, зменшуючи час компіляції на вашому комп’ютері.