Qt Program развернуть на мультиплатформу, как? - PullRequest
6 голосов
/ 09 марта 2010

Я новичок в Qt Programming, и я хотел бы разработать программу, которую я хочу запустить в Windows, Linux (Ubuntu) и Mac.

Я слышал, что Qt поддерживает разработку приложений для разных платформ,

но мой вопрос таков,

потребуется ли какой-либо библиотеке Qt запускать эти приложения в Ubuntu после того, как я развернул или скомпилировал?

Ответы [ 2 ]

1 голос
/ 10 марта 2010

Если вы развертываете в Ubuntu и, следовательно, используете пакет .deb, тогда ваша задача проста, так как вам просто требуется qt как зависимость, и apt автоматически установит его по мере необходимости.

Windows и Mac, однако, не имеют какого-либо «хорошего» уровня управления программным обеспечением, поэтому у вас нет выбора, кроме как включить необходимые DLL-библиотеки Qt в ваш двоичный файл или скомпилировать статический. В Windows вы просто должны убедиться, что библиотеки DLL находятся в том же каталоге, что и ваша программа. Mac, однако, требует некоторой перекомпоновки. Это большая боль, но, к счастью, Qt поставляется с инструментом под названием macdeployqt, который делает это за вас.

Так что, по моему опыту, Linux - самая простая платформа для развертывания, за которой следует Windows, а Mac - хорошая последняя.

Ссылка на документацию по развертыванию Qt, приведенная выше, является хорошей отправной точкой. Если вам нужен пример, я написал пару сценариев для создания бинарных файлов Windows для моей программы. Вы можете взглянуть на них, чтобы начать.

Установщик Windows:
http://gitorious.org/tagaini-jisho/tagaini-jisho/blobs/master/pack/win32-cross/buildwin32releases.sh
http://gitorious.org/tagaini-jisho/tagaini-jisho/blobs/master/pack/win32-cross/tagainijisho.nsi

0 голосов
/ 09 марта 2010

Если говорить о стороне Linux, то если вы распространяете свое приложение как пакеты (deb, rpm), вы можете использовать правила зависимостей пакетов. Если вы правильно определите эти правила, тогда менеджер пакетов установит библиотеки Qt, которые вам нужны при установке приложения.

...