Forums » Разработка версии 3.х »
Исходники под linux
Added by Микаэль Месюк 125 days ago
Доброго времени суток. Хотел поинтересоваться будут ли исходники под linux , не привязанные к VS ?
Благодарю.
Replies
RE: Исходники под linux - Added by Алексей Катроевский 125 days ago
Здравствуйте,
У нас разработка идёт в VS2010, но исходный код на 99% кроссплатформенный. Файлы проектов под нужную систему сборки вы можете сформировать (сконвертировть из vcxproj) самостоятельно.
RE: Исходники под linux - Added by Микаэль Месюк 125 days ago
Документацию бы еще как это зделать корректно , с помощью Qt addon для студии не чего вразумительного не получается.
RE: Исходники под linux - Added by Алексей Катроевский 125 days ago
Так как мы не выпускаем сборки под линукс, то и инструкции у нас нет.
Навскидку есть такие варианты:
- в студии в меню Qt Add-in для каждого проекта выбрать последовательно пункты "Create basic .pro file" и "Export project to .pri file"
- написать конвертор .vcxproj (можно даже на xslt) в файлы проектов вашей системы сборки (ну тот же .pro, например)
В написании конвертора сложностей быть не должно, структура студийных проектов очень несложная, по сути просто набор .cpp файлов для компиляции и линковки.
RE: Исходники под linux - Added by Марат Абраров 125 days ago
Алексей Катроевский написал(а):
Так как мы не выпускаем сборки под линукс, то и инструкции у нас нет. В написании конвертора сложностей быть не должно, структура студийных проектов очень несложная, по сути просто набор .cpp файлов для компиляции и линковки.
Мне кажется, стоит уже сейчас задуматься о переходе на cmake - тут вам и "проекты для студии" и continuous integration.
RE: Исходники под linux - Added by Микаэль Месюк 124 days ago
Алексей Катроевский написал(а):
Так как мы не выпускаем сборки под линукс, то и инструкции у нас нет.
Навскидку есть такие варианты: - в студии в меню Qt Add-in для каждого проекта выбрать последовательно пункты "Create basic .pro file" и "Export project to .pri file" - написать конвертор .vcxproj (можно даже на xslt) в файлы проектов вашей системы сборки (ну тот же .pro, например)
В написании конвертора сложностей быть не должно, структура студийных проектов очень несложная, по сути просто набор .cpp файлов для компиляции и линковки.
С конвертированием проблем не возникало, сыпятся ошибки при компиляции mingw'ом под windows , так же и в linux при попытки компилять gcc'ом.
У меня всего один вопрос, кто нибуть хоть разок собирал это приложение под linux , ну или хотяб не студийным компилятором?
RE: Исходники под linux - Added by Алексей Катроевский 124 days ago
Алексей Катроевский написал(а):
Какие именно ошибки?
Собирали один раз, но давно. Вин-апи почти нет, из компиляторной специфики - pragma once (в гцц есть) и анонимные функции и auto из нового стандарта.
Могут вылезти ошибки из-за недостающих инклюдов, замечено, что студия не так придирчива к наличию абсолютно всех инклюдов в cpp.
RE: Исходники под linux - Added by Микаэль Месюк 124 days ago
Ошибки были разнообразные как то не сообразил сразу записывать , теперь буду, вот из того что запомнил :
Ругался на :
Q_DECLARE_METATYPE(IDevice*); в ..../src/includes/SDK/Drivers/IDevice.h , переместил за скобки namespace SDK, исправив на
Q_DECLARE_METATYPE(SDK::Driver::IDevice*).
....../src/modules/DeviceManager/msvc/../src/DeviceManager.h:82: ошибка: избыточная квалификация «Modules::DeviceManager::» элемента «findDevice» [-fpermissive]
Убрал DeviceManager:: , проблема исчезла
Вот такого много :
....../src/modules/Hardware/Printers/msvc/../src/POSPrinters/POSPrinter.cpp:188: ошибка: запрошено преобразование от «QMap<char, QMap<char, int> >::const_iterator» к нескалярному типу «QMap<char, QMap<char, int> >::iterator»
Изменил на for(POSPrinters::TAllErrors::const_iterator it....
Вот это не могу побороть:
....../src/includes/SDK/Plugins/IPluginLoader.h:27: ошибка: «function» in namespace «std» does not name a type
....../src/modules/Hardware/Protocols/FR/KKM/src/KKM.cpp:996: ошибка: вызов перегруженной «push_back(uchar)» имеет неоднозначную трактовку
RE: Исходники под linux - Added by Павел Шамаль 124 days ago
Вынос Q_DECLARE_METATYPE(...) за namespace SDK не повлечет за собой каких-либо проблем.
По поводу ошибки с std::function, проверьте, что используемая версия стандартной библиотеки содержит её (в противном случае обновите её или используйте boost::function).
Для исправления push_back попробуйте использовать static_cast<uchar>(...) вместо uchar(...).
RE: Исходники под linux - Added by Микаэль Месюк 124 days ago
оставил с boost::function
static_cast<uchar> не помог , а вообще вот так выглядит полностью ошибка
src/KKM.cpp: В функции-члене «bool KKM::getCommandPacket(FRProtocolCommands::Enum, const QVariantMap&, QByteArray&)»: src/KKM.cpp:996:85: ошибка: вызов перегруженной «push_back(uchar)» имеет неоднозначную трактовку src/KKM.cpp:996:85: замечание: candidates are: /home/mika/Programms/Qt/Desktop/Qt/474/gcc/include/QtCore/qbytearray.h:493:13: замечание: void QByteArray::push_back(char) /home/mika/Programms/Qt/Desktop/Qt/474/gcc/include/QtCore/qbytearray.h:495:13: замечание: void QByteArray::push_back(const char*) /home/mika/Programms/Qt/Desktop/Qt/474/gcc/include/QtCore/qbytearray.h:497:13: замечание: void QByteArray::push_back(const QByteArray&)
Переделал как советует , а именно char(...), ошибок нет , на сколько это верно ?
Благодарю.
RE: Исходники под linux - Added by Павел Шамаль 123 days ago
Такое решение допустимо, но мы все же постараемся исправить проблемы в этом участке кода.
RE: Исходники под linux - Added by Алексей Катроевский 123 days ago
В какой среде и каким компилятором (версия) вы собираете проект?
RE: Исходники под linux - Added by Микаэль Месюк 123 days ago
Алексей Катроевский написал(а):
В какой среде и каким компилятором (версия) вы собираете проект?
QtCreator 2.3.1
Qt 4.7.4
gcc-4.6.1
Ubuntu 11.10 64x
RE: Исходники под linux - Added by Алексей Катроевский 123 days ago
Мы уже собираем с Qt 4.8.0, попробуйте тоже, возможно ряд проблем уйдёт.
RE: Исходники под linux - Added by Микаэль Месюк 123 days ago
создал отдельно http://opensource.cyberplat.com/redmine/boards/1/topics/show/67