Я пытался это сделать и в настоящее время добиваюсь прогресса.
Некоторые трудности:
IDE - мне нужно вручную добавить все файлы Qt и бороться с компилятором с помощью #ifdefs, пока он не соберется со всеми зависимостями.
Linux (ness) - мне пришлось отключить все вещи Linux / Windows, которые не поддерживаются в моей целевой ОС: потоки, сокеты, процессы. Даже таймеры немного отличаются.
Советы:
Начнем с малого: я скомпилировал QtCore как стандартную библиотеку в своей IDE, затем QtGui, который по сравнению с QtCore просто чудовищен.
Я планирую запустить только один QThread, поэтому мне нужно искусственно создать объект Thread, чтобы избежать нулевых указателей. Вы не можете скомпилировать информацию о Thread, так как она является ключевой для всех объектов QObject.
Пока у меня есть приложение qeventloop, запущенное в приложении qcore.
Я написал несколько встроенных сборок, но у меня были серьезные трудности с моей IDE и компиляцией. Я оставил это в C ++ и позволил ассемблеру обработать это для меня. Поскольку я однопоточный, я не слишком озабочен общими данными / эксклюзивным доступом, как того требуют атомарные операции.