Портировать ли qt на другую ОС так просто? - PullRequest
6 голосов
/ 18 мая 2009

В статье Портирование Qt для Embedded Linux на другую операционную систему перечислены пять вещей, которые вы должны сделать, чтобы перенести Qt для Embedded Linux на другую ОС. Из статьи:

Есть несколько проблем, о которых нужно знать, если вы планируете создать свой собственный порт для другой операционной системы. В частности, вы должны разрешить совместную память и семафоры Qt для Embedded Linux (используемые для совместного использования областей окон), и вы должны предоставить нечто подобное сокетам Unix-домена для взаимодействия между приложениями. Вы также должны предоставить драйвер экрана, и если вы хотите реализовать звук, вы должны предоставить свой собственный звуковой сервер. Наконец, вы должны изменить диспетчер событий, используемый Qt для Embedded Linux.

Неужели так просто портировать Qt на другую ОС, или я пропустил некоторую информацию?

Ответы [ 5 ]

3 голосов
/ 22 мая 2009

Другим важным компонентом для порта будет QAtomic, чтобы гарантировать, что у вас могут быть атомарные операции и неявное совместное использование. Смотри также

http://labs.trolltech.com/blogs/2007/08/28/say-hello-to-qatomicint-and-qatomicpointer/

2 голосов
/ 02 июня 2009

Поскольку Qt портируется большое количество раз, кажется логичным, что это будет по своей природе просто. Однако проблема действительно в платформе, на которую вы портируете, и в том, сколько функций она поддерживает в настоящее время.

1 голос
/ 20 мая 2009

Если все эти вещи просты, то порт прост.

0 голосов
/ 03 марта 2015

Я пытался это сделать и в настоящее время добиваюсь прогресса. Некоторые трудности:

IDE - мне нужно вручную добавить все файлы Qt и бороться с компилятором с помощью #ifdefs, пока он не соберется со всеми зависимостями.

Linux (ness) - мне пришлось отключить все вещи Linux / Windows, которые не поддерживаются в моей целевой ОС: потоки, сокеты, процессы. Даже таймеры немного отличаются.

Советы: Начнем с малого: я скомпилировал QtCore как стандартную библиотеку в своей IDE, затем QtGui, который по сравнению с QtCore просто чудовищен.

Я планирую запустить только один QThread, поэтому мне нужно искусственно создать объект Thread, чтобы избежать нулевых указателей. Вы не можете скомпилировать информацию о Thread, так как она является ключевой для всех объектов QObject.

Пока у меня есть приложение qeventloop, запущенное в приложении qcore. Я написал несколько встроенных сборок, но у меня были серьезные трудности с моей IDE и компиляцией. Я оставил это в C ++ и позволил ассемблеру обработать это для меня. Поскольку я однопоточный, я не слишком озабочен общими данными / эксклюзивным доступом, как того требуют атомарные операции.

0 голосов
/ 21 июля 2009

После более подробного изучения я пришел к выводу, что в статье «Перенос Qt для встраиваемого Linux на другую операционную систему» ​​предполагается, что вы переносите Qt на очень «linux-подобную» ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...