2013-10-06 4 views
0

Я создал среду разработки с Fedora 18 и Qt 5Создание бинарной зависимой от Qt 5

Когда я компилирую мое приложение будет 64 бит, и зависят от Qt 5. После некоторых исследований, кажется, что будет проблема, поскольку Centos 6.x по-прежнему зависит от Qt 4.6, а Centos 5.x зависит от более раннего Qt, и я предполагаю, что Ubuntu имеет свои собственные ограничения пакетов.

Есть ли «безопасная» версия Qt, которую я могу скомпилировать, чтобы обеспечить ее работу везде? Если нет, как я могу ожидать, что клиенты будут запускать мою программу?

+0

Является ли ваше программное обеспечение бесплатным программным обеспечением или нет? Бесплатное ПО: попробуйте openSUSE. Если вы проприетарно: попробуйте соединить статически или ограничить количество поддерживаемых целевых платформ, если это возможно. –

ответ

1

Если вы хотите настроить таргетинг на Linux, я бы рекомендовал использовать Qt 4.8 (доступный на большинстве Linux Distros), забыть о Qt 5 в течение года или около того. Вряд ли любой дистрибутив Linux, отличный от Ubuntu 13.04 и выше, поставляется с Qt 5.

Во-вторых, если вы хотите настроить таргетинг на дистрибутивы Linux, отличные от Ubuntu и Fedora, чем никогда не использовать Ubuntu или Fedora для компиляции. Это кровоточащие граничные дистрибутивы Linux, которые включают новые библиотеки без особого тестирования. Вы столкнетесь не только с проблемой старых версий Qt на некоторых дистрибутивах Linux, так как вы столкнетесь с большей проблемой glibc (библиотеки C). Убедитесь, что дистрибутив Linux, который вы используете для компиляции, имеет минимально возможную версию glibc для Qt 4.8, в противном случае, даже если любой дистрибутив Linux имеет Qt 4.8, но имеет более низкую версию glibc, приложение все равно не будет работать. Вы можете проверить distrowatch.com выяснить GLibC и Qt версии для любого Linux Distro

Пример:

Я составил мое приложение на Ubuntu 12.04, Qt 4.8.1 с GLibC против 2.16 (может быть). У меня есть отчет об ошибке, чем приложение не запускается на CrunchBang, у которого также есть Qt 4.8.1, но поскольку это нестабильный Linux-дистрибутив Debian, он использует glibc v2.13. С этого дня я всегда компилирую свое приложение на CrunchBang (очень легкий, вы можете использовать Virtual Box для этого), и вряд ли кто-то жалуется сейчас.

Что касается CentOs, вам необходимо перекомпилировать свой код на CentOS.

+0

Я строю с использованием QT 5.1 и имею много кода, написанных сейчас. Похоже, со временем синтаксис изменился для сигналов, подключился и, вероятно, больше. Является ли Qt 4.8.1 совместимым с синтаксисом Qt 5.x? – TSG

+0

Кроме того, поскольку мое приложение предназначено для Linux-серверов, я подозреваю, что RH/Centos станет самым популярным дистрибутивом. Почему компиляция crunchbang не запускается под RH/centos? И чтобы сделать следующий шаг, сколько VM вы используете, чтобы вы могли компилировать основные дистрибутивы, архитектуры и т. Д.? – TSG

+0

@ Michelle Да Qt 4.8 совместим с Qt 5, но вам нужно немного, если defs очень мало. Что касается соединения, то Qt 5 поддерживает как старый стиль, так и новый стиль. Вы должны использовать старый стиль для совместимости, вам нужны два дистрибутива Linux для компиляции 64 и 32 бит. Проверьте версию glibc для Centos, если она больше 2.12, чем компиляция crunchbang будет работать на centos –

Смежные вопросы