На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

GisDesigner15 + QtCreator + MinGW x64

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
GisDesigner15 + QtCreator + MinGW x64
 
Возможна ли сборка приложений с применением GisDesigner15 не в VC а QtCreator + MinGW x64 ?
В примере mapView:
Код
// Вызвать конструктор QDMapView для установки функций отображения принтерного вида
  QDMapView();
ошибку выдает:
Код
error: undefined reference to `__imp__ZN9QDMapViewC1EP7QWidget'
undefined reference to `__imp__ZN9QDMapViewC1EP7QWidget'
пути к Include и Lib правильные
Пример, конечно, с компилятором MSVC2019 64bit прекрасно собирается, но там отладка кривоватая - значения переменных иногда перестает отображать, вот и перешел на MinGW
Изменено: Валерий Парусов - 24.12.2024 07:23:17
 
Добрый день!

Данная ошибка связана с тем, что к приложению, собранному с помощью компилятора GCC из состава MinGW, линкуются символы из библиотеки gis64mapcomponents.dll, собранной с помощью компилятора Microsoft Visual C++.
На текущий момент ГИС Конструктор для Windows предназначен для использования с компилятором Microsoft Visual C++.
 
Да это понятно, что компиляторы не совсем совместимы, думал может какой трюк есть.
gis64acces.lib нормально же сделан, линкуется.
На работе MSVC QT Tools не поставишь без интернета - то.
 
Дошли у меня руки до сборки qmapcomponents под Windows + Mingwx64.
Внес 4 исправления
1) Чтобы убрать ошибку линковки функции GetTickCount64() в файле проекта добавть
Код
QMAKE_CXXFLAGS += "-D_WIN32_WINNT=0x0600"
2) в qdmnet.cpp вместо вызова Windows MessageBox сделал вывод в QMEssageBox, неохота было возиться с преобразованием char <-> wchar
Код
void QDMapNet::SetRscName(char *value){
...
QMessageBox::critical(0,QString(msg_BADRSC).arg(value),"Ошибка");
3) в qdmd3d.cpp
Код
void QDMap3D::Execute(){
...
надо вместо
Код
mapLoadLibrary(MAP3DWINLIB,
поставить
Код
mapLoadLibrary(MAP3DLIB, 
4) в проекте удалил из SOURCES файл maqtdraw.cpp, может конечно в нем что-то интересное есть, но разработчики его не положили, а без него все и так собирается

На заметку:
путь к библиотекам  ставил на GTK15
Код
LIBS += -L$$(GTK_ROOT)/Dll/X64/MS_Visual_Studio -lgis64acces -lgis64obnet
а вот к includ-ам - на GISDesigner15, для сборки требуется файл mapview.rh
Код
INCLUDEPATH += D:/Application/GisDesigner15/Include
в файле проекта не удаляйте QMAKE_CXXFLAGS += -finput-charset=cp1251, не соберется, я случайно попробовал.
Изменено: Валерий Парусов - 22.02.2026 07:10:09
 
Добрый день!

Спасибо за информацию!
 
И еще немного не по этой теме. Вот уже который раз при обновлении GTK15 (сейчас на 15.2.0.0) мне приходится удалять некоторые #include в файлах GTK :
1) в seekapi.h удаляю  #include "selapi.h" - такого файла просто нет
2) в mathapi.h улаляю #include "obsetapi.h" - тоже нет, но в GISDesigner15 он есть, что вобщем-то и неважно, т.к. используется GTK15

Незнаю как у разработчиков, а у меня после этого все работает.
Изменено: Валерий Парусов - 28.02.2026 07:34:14
 
Добрый день!

Спасибо за информацию.
Исправим в следующей сборке GTK15.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2026

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности