Почему osgEarth не собирается с Qt?

Я пытаюсь собрать osgEarth с помощью Quarts. Инструкция на официальном сайте гласит:

Укажите для переменной Qake QT_QMAKE_EXECUTABLE значение qmake.exe, которое вы хотите.
использовать, и CMake заполнит все остальные переменные QT.

Хорошо. Я делаю следующее:

cmake -D QT_QMAKE_EXECUTABLE=/Users/garbart/Qt/5.10.0/clang_64/bin/qmake CMakeLists.txt
make

И получите следующую ошибку:

[ 19%] Built target osgEarth
[ 25%] Built target osgEarthSymbology
[ 32%] Built target osgEarthFeatures
[ 35%] Built target osgEarthAnnotation
[ 44%] Built target osgEarthUtil
[ 44%] Building CXX object src/osgEarthQt/CMakeFiles/osgEarthQt5.dir/ViewerWidget.cpp.o
In file included from /Users/garbart/Desktop/osgearth-master/src/osgEarthQt/ViewerWidget.cpp:31:
In file included from /Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/QtGui:45:
In file included from /Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/qopenglcontext.h:61:
/Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/qopenglversionfunctions.h:1089:23: error:
unknown type name 'GLDEBUGPROC'
QT_OPENGL_DECLARE(QT_OPENGL_4_3_FUNCTIONS);
^
In file included from /Users/garbart/Desktop/osgearth-master/src/osgEarthQt/ViewerWidget.cpp:31:
In file included from /Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/QtGui:47:
/Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/qopenglextrafunctions.h:472:33: error:
unknown type name 'GLDEBUGPROC'
void glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam);
^
/Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/qopenglextrafunctions.h:758:23: error:
unknown type name 'GLDEBUGPROC'
QT_OPENGL_DECLARE(QT_OPENGL_EXTRA_FUNCTIONS)
^
/Users/garbart/Qt/5.10.0/clang_64/lib/QtGui.framework/Headers/qopenglextrafunctions.h:2213:59: error:
unknown type name 'GLDEBUGPROC'
inline void QOpenGLExtraFunctions::glDebugMessageCallback(GLDEBUGPROC ca...
^
4 errors generated.
make[2]: *** [src/osgEarthQt/CMakeFiles/osgEarthQt5.dir/ViewerWidget.cpp.o] Error 1
make[1]: *** [src/osgEarthQt/CMakeFiles/osgEarthQt5.dir/all] Error 2
make: *** [all] Error 2

QT 5.10.0
osgEarth 2.10

1

Решение

Вот как я собираю OSG, osgQt и osgEarth.

Получить OSG, настроить и собрать:

git clone --branch OpenSceneGraph-3.6.2 https://github.com/openscenegraph/OpenSceneGraph.git

mkdir osg-build
cd osg-build
cmake ../OpenSceneGraph
make
sudo make install

Получите osgQt, настройте и соберите:

git clone https://github.com/openscenegraph/osgQt.git
mkdir osgqt-build
cd osgqt-build
cmake ../osgQt -DCMAKE_PREFIX_PATH=/opt/Qt/5.6.3/gcc_64/lib/cmake
make
sudo make install

Этот последний шаг может не сработать, потому что osgQt не успевает за OSG.

Вам нужно будет отредактировать CMakeLists.txt и установите пути к каталогам для поиска Qt и OSG. CMakeLists.txt Также жестко ссылается на конкретную версию OSG, это нужно будет изменить. В списках было довольно много дискуссий об этих проблемах, так что, возможно, это было отсортировано к тому моменту, когда вы прочитаете это.

git clone https://github.com/gwaldron/osgearth.git
mkdir osgearth-build
cd osgearth-build
cmake ../osgearth -DCMAKE_PREFIX_PATH=/opt/Qt/5.6.3/gcc_64/lib/cmake

Настройте сборку, используя ccmake . со следующими настройками:

OSGEARTH_QT_BUILD                ON
OSGEARTH_QT_BUILD_LEGACY_WIDGE   ON

Сборка и установка:

make
sudo make install

Примечание: Qt 5.11 также должен работать.

1

Другие решения

  1. Сначала установите Qt.
  2. Установите последнюю версию openscengraph и убедитесь, что она работает правильно.
  3. Затем установите последнюю версию osgEarth.

Пожалуйста, следуйте порядку.

0

По вопросам рекламы [email protected]