Исходники под 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