Блог разработчика AGB Corp. - AGB Corp Project Russian website

Оказание частных консалтинговых услуг и разработка ПО для нефтегазовой отрасли.

Перейти к контенту

Codelite 13 IDE под RedOS 7.6

AGB Corp Project Russian website
Опубликован от Alexey Bogdanov вход Разработка · 4 июль 2020
Tags: LinuxRedOS7.6разработкаПОcodelite13zealiupошибкасборкаwxPropertyGridConstIterator
Долгое время основной системой, которую я использовал при разработке приложений под Linux была GosLinux IC3, базирующаяся на CentOS 6.6. Система удобная, хорошо реализованная, но, к огромному сожалению, не получившая дальнейшего развития. Устаревшая версия компилятора не позволяла в ряде случаев ее использовать, а дальнейшего движения — то есть обновления до 7 или 8 версии не было.

Необходимо было найти замену, причем желательно опять отечественный вариант. И эта замена была найдена: RedOS 7.2 (базирующаяся на CentOS 7.2, но включающая в себя обновленный компилятор gcc версии 7.2.1 — в то время как в CentOS 7.х до сих пор используется версия 4.8.5 !!!).

Компания РЕД СОФТ проделала отличную работу — особых проблем при установке и настройке системы не отмечено. Все основные пакеты, которые требуются — находятся в актуальном состоянии.

К сожалению в список доступных пакетов не входит среда разработки Codelite, которую я давно использую как основную, причем за счет многоплатформенности (она доступна как под Windows, так и под Linux) — очень удобно работать над мультиплатформенными проектами в одинаковой IDE. Пришлось собирать ее из исходных кодов. Обычно, особых проблем этот процесс не создает, но в 13 версии, к сожалению, при компиляции отмечены две ошибки:

---
[ 68%] Building CXX object codelitephp/CMakeFiles/codelitephp.dir/php-plugin/php_editor_context_menu.cpp.o
[ 68%] Building CXX object LiteEditor/CMakeFiles/codelite.dir/CodeLiteUpgradeFrame_liteeditor_bitmaps.cpp.o
[ 68%] Building CXX object WebTools/CMakeFiles/WebTools.dir/NodeJSWorkspaceView.cpp.o
[ 68%] Building CXX object LiteEditor/CMakeFiles/codelite.dir/CompilerMainPage.cpp.o
/home/agbogdanov/src/codelite-13.0/LiteEditor/CompilerMainPage.cpp: В функции-члене «void CompilerMainPage::InitializeTools()»:
/home/agbogdanov/src/codelite-13.0/LiteEditor/CompilerMainPage.cpp:543:76: ошибка: запрошено преобразование от «wxPropertyGridIterator {aka wxPGIterator}» к нескалярному типу «wxPropertyGridConstIterator {aka wxPGIterator
    wxPropertyGridConstIterator iter = m_pgMgrTools->GetGrid()->GetIterator();
                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
[ 68%] Building CXX object wxcrafter/CMakeFiles/wxCrafter.dir/FontPickerDlg.cpp.o
[ 68%] Building CXX object codelitephp/CMakeFiles/codelitephp.dir/php-plugin/php_file_layout_tree.cpp.o
make[2]: *** [LiteEditor/CMakeFiles/codelite.dir/CompilerMainPage.cpp.o] Ошибка 1
make[1]: *** [LiteEditor/CMakeFiles/codelite.dir/all] Ошибка 2
make[1]: *** Ожидание завершения заданий...
---

Как видно из сообщений g++, они возникают при компиляции файла CompilerMainPage.cpp, находящегося в подкаталоге LiteEditor.
Проблема в 543 строке. Для решения этой проблемы необходимо заменить:

wxPropertyGridConstIterator iter = m_pgMgrTools->GetGrid()->GetIterator();

на следующий код:

const wxPropertyGrid* pgrid = m_pgMgrTools->GetGrid();
wxPropertyGridConstIterator iter = pgrid->GetIterator();

После чего сборка Codelite 13 завершается без ошибок. Следует отметить, что я проверял только 64-битную сборку.

Дополнительная информация (на английском) доступна здесь.

Codelite использует ПО Zeal для доступа к справочной информации. Это ПО опять же отсутствует в каталоге доступных программ для ОС RedOS 7.2. Но сборка из исходных кодов проходит без ошибок. Есть правда одна маленькая проблема, которую необходимо решить, чтобы использовать связку Codelite 13 + Zeal. По умолчанию, собранный пакет zeal устанавливается в каталог /usr/local/bin , а плагин Codelite, который обеспечивает взаимодействие с этой системой, к сожалению, требует, чтобы модуль zeal располагался строго в /usr/bin (жестко прописано в коде). Поэтому создаем ссылку на модуль zeal в /usr/bin.

После этих манипуляций мы можем использовать замечательную IDE Codelite 13 в RedOS 7.2



Комментариев нет

Назад к содержимому