2013-12-01 2 views
1

Heads вверх, это будет сбивать с толку:Упаковка модифицированного класса Qt

Я настроен 9 файлов из Qt5.2: qquicktextdocument.cpp qquicktextdocument.h qquicktextedit.cpp qquicktextedit_p.h qquicktextedit_p_p.h qquicktextnode.cpp qquicktextnodeengine .cpp qquicktextnodeengine_p.h qquicktextnode_p.h

Каждый файл имеет префикс с буквой и внутри/qtdeclarative/src/quick/items /. Я на 100% доволен изменениями, внесенными мной под GPL и т. Д. Я немного хочу, чтобы мое конечное приложение (обсуждалось ниже) было Apache или MIT, но я гибкий.

Мои модификации работают нормально. Когда я изменяю несколько дополнительных файлов, я могу их скомпилировать вместе с остальной частью Qt (в то же время, используя ту же команду make). Но эти изменения входят в другое приложение Qt, которое я делаю, и я хочу, чтобы другие люди могли его использовать, и требование, чтобы общие потребители имели собственную скомпилированную версию Qt, были бы явно абсурдны.

Я хочу упаковать/скомпилировать/сделать что-то, что позволит мне включить изменения в мой окончательный проект как общую библиотеку или что-то в этом роде.

Как веб-разработчик, пишущий C++ и Qt, я очень смущен о связывании разделяемые библиотеки, файлы заголовков и т.д.

Резюмируя, я изменил Qt 5.2 и сделал собственный сборник его для приложения я нахожусь и я хочу, чтобы люди могли запускать это приложение, не имея собственной компиляции Qt. Мне нужен способ отделить мои модификации Qt от Qt.

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

В настоящее время я также изучаю подклассы классов, которые я хочу, но я не уверен в этом. Может потребоваться скопировать какой-нибудь код, который может иметь проблемы с лицензированием?

Конечная цель: иметь возможность иметь волнистую подчеркивание (в qml) для неправильно записанных слов.

Thank you.

ответ

0

Мои 5 центов.

  1. Если ваши изменения могут быть полезны (в общем) для других людей, вы можете попытаться протолкнуть их вверх по потоку через codereview.
  2. Если вы хотите, чтобы ваше приложение запускалось только в окнах, все становится очевидным: в окнах нормально предоставлять ваше приложение совместно используемыми библиотеками (чтобы избежать DLL HELL). Кстати, слышали ли вы о статической компоновке?
  3. Qt имеет некоторый plugin механизм. Вы можете скомпилировать свой код в общий объект (динамическую библиотеку) и установить его с помощью своего приложения. Например, QML FolderListModel делает это. Вы можете посмотреть код в $qt5_src/qtdeclarative/src/imports/folderlistmodel.
Смежные вопросы