1

Тема: Фіналізація проєкту, створення файлів для встановлення на різні ОС

Проєкт зроблено в Qt6.
Як створити файли для розповсюдження серед користувачів ОС Відновс і Лінукс?
Я, звісно, можу створити release в Qt6 на Віндовс і Лінукс, а тоді спробувати загорнути все до архіву або MSI.
Але чи є можливість кросплатформеної компіляції в С++, щоб в одній ОС усе створювати?
Як краще зробити setup файли для Лінукс і Віндовс?

2

Re: Фіналізація проєкту, створення файлів для встановлення на різні ОС

Залежить від того якою системою збірки ви користуєтесь та/чи компілятора. Гуглити:

C++ [назва_вашої_системи_збірки (наприклад, make/cmake/qmake)] cross-compiling

Частково простішим шляхом, було б завести CI/CD на GitHub Actions (це безплатно) для ваших цільових ОС та написати скрипт, який би збирав роздільно для Віндовс та Лінукс ваші релізні артефакти, а також вивантажував вам їх у певному форматі (тому ж zip-архіві).
З плюсів: все автоматизовано, раз написав та забув.
З мінусів: тре заморочитись та розібратись з CI/CD, написанням скриптів.

Подякували: leofun01, Teg Miles2

3

Re: Фіналізація проєкту, створення файлів для встановлення на різні ОС

wander написав:

Залежить від того якою системою збірки ви користуєтесь та/чи компілятора. Гуглити:

C++ [назва_вашої_системи_збірки (наприклад, make/cmake/qmake)] cross-compiling

Частково простішим шляхом, було б завести CI/CD на GitHub Actions (це безплатно) для ваших цільових ОС та написати скрипт, який би збирав роздільно для Віндовс та Лінукс ваші релізні артефакти, а також вивантажував вам їх у певному форматі (тому ж zip-архіві).
З плюсів: все автоматизовано, раз написав та забув.
З мінусів: тре заморочитись та розібратись з CI/CD, написанням скриптів.

А з Docker краще буде? Комерційні проєкти частіше з ним роблять?

4

Re: Фіналізація проєкту, створення файлів для встановлення на різні ОС

З особистої практики не бачив використання докера саме для релізу артефактів, хоча теоретично може й можна. Але виглядає, як надлишковий крок. Там насправді скрипти для GitHub Actions досить елементарні, пишуться на YAML й все чудово документовано самим GitHub. Тре лиш трохи часу приділити цьому, а здобуті навички потім можуть знадобитися :) .

Подякували: leofun011