Невозможно скомпилировать MeshLab из исходного кода на Ubuntu 16.10

Я загрузил исходники MeshLab и обновил свою установку Qt до последней версии (Qt Creator 4.2.0, созданной 9 декабря 2016 г.). При первой попытке скомпилировать проект meshlab_full я обнаружил, что мне нужно переименовать папку io_txt в plugins_experimental на io_TXT. Но после этого он терпит неудачу с этой ошибкой:

В файле, включенном из ../../src/common/meshmodel.h:32:0, из ../../src/common/filterparameter.cpp:32: ../../src/common/ml_mesh_type .h:4:33: фатальная ошибка: vcg/complex/complex.h: Нет такого файла или каталога #include ^ компиляция прекращена.

Папки vcg действительно нет. Как мне это получить?

Спасибо, Рич


person rdfrahm    schedule 18.01.2017    source источник


Ответы (2)


Вам нужно получить vcg lib. Он должен быть на том же уровне, что и ваш каталог meshlab:

yourdevelfolder/
 |
 ├──meshlab
 │   ├──docs
 │   ├──README.md
 │   ├──src
 │   ├──...
 │   └──...
 └──vcglib
     ├──apps
     ├──doc
     ├──eigenlib
     ├──...
     └──...

Затем вы должны получить исходники vgclib:

$ git clone https://github.com/cnr-isti-vclab/vcglib.git
$ cd vcglib
$ git checkout devel

Инструкции по компиляции находятся здесь

person Eric B.    schedule 19.01.2017
comment
Спасибо, Эрик, я ценю помощь ;) Я скачал файлы vcg и поместил их в нужное место, а затем создал проект external.pro. Это избавило меня от ошибки, которую я видел раньше, но до сих пор не могу построить полную или мини-сетку. Ошибка, которую я получаю, говорит об ошибке: «ColorConverter» не был объявлен. Я изрядно поковырялся и не могу сказать, является ли ColorConverter вещью Qt или вещью MeshLab. Есть ли у вас какие-либо идеи? Спасибо, Рич - person rdfrahm; 20.01.2017
comment
Дайте подробные логи. vcglib, возможно, находится не в том месте. Основная проблема, с которой я столкнулся при работе с vcglib, заключалась в том, что я не выполнил проверку на ветку разработки. - person Eric B.; 20.01.2017
comment
Извините за задержку @Eric - мне нужно было найти подходящий способ поделиться выводом компилятора. Вот он: drive.google.com/file/d/0B2i1fbB8wvDySnVZMzMzVTZXQU0/ Спасибо! - person rdfrahm; 21.01.2017
comment
Переименуйте каталог meshlab-2016.12 в meshlab. Вы должны найти каталоги meshlab и vcglib в /home/rich/Downloads/3dTools/MeshLab/Source. Вот лог из моей компиляции: cd common/ && ( test -e Makefile || /opt/Qt/5.7/gcc_64/bin/qmake /home/eric/dev/3D/meshlab/meshlab/src/common/common.pro -spec linux-g++ CONFIG+=debug CONFIG+=qml_debug -o Makefile ) && make -f Makefile make[1] : on entre dans le répertoire « /home/eric/dev/3D/meshlab/meshlab/build-meshlab_full-Desktop_Qt_5_7_1_GCC_64bit-Debug/common » - person Eric B.; 21.01.2017
comment
Еще раз спасибо @Eric. Это продвинуло меня дальше по пути, но теперь у меня другая ошибка. Вывод компиляции: drive.google.com/file/d/0B2i1fbB8wvDyOWJFQjA4NGt0dG8/ Вот моя структура папок: drive.google.com/file /d/0B2i1fbB8wvDyZXNPdjBKbmlNSlU/ Мне нужно продолжить в другом комментарии... - person rdfrahm; 21.01.2017
comment
Пишет, что не может найти -ljhead. Я не эксперт в компиляции, но похоже, что он ищет jhead в папке /home/rich/Qt/5.7/gcc_64/lib, верно? Там его нет, но есть libjhead.a в /home/rich/MeshLab/meshlab/src/build-external-Desktop_Qt_5_7_1_GCC_64bit-Release/lib/linux-g++ и jhead.o в /home/rich/MeshLab /meshlab/src/build-external-Desktop_Qt_5_7_1_GCC_64bit-Release/jhead-2.95 Есть идеи, что я не так? - person rdfrahm; 21.01.2017
comment
Скомпилированные библиотеки необходимо вручную скопировать в meshlab/src/external/lib/linux-g++. У вас могут возникнуть проблемы при компиляции с установленным флажком Shadow Build. Я исправил проблему с этим коммитом: github.com/eboudrand/meshlab/commit/ - person Eric B.; 22.01.2017
comment
Успех! Спасибо, @Eric Boudrand! Я ценю всю вашу помощь :) - person rdfrahm; 22.01.2017

Обновлять

Как прокомментировал @AlessandroMuntoni, мы можем использовать опцию --recursive, и VCG будет автоматически доступен как подмодуль:

git clone --recursive https://github.com/cnr-isti-vclab/meshlab

Исходный пост

В meshlab.pro прокомментировано:

# MESHLAB_SOURCE_DIRECTORY: the directory where is placed the main meshlab.pro

В general.pri установлено:

# VCG directory
VCGDIR = $$MESHLAB_SOURCE_DIRECTORY/../vcglib

Поэтому я разветвил и клонировал библиотеку VCG внутри:

 |
 └──meshlab (Git clone)
     ├──docs
     ├──README.md
     ├──src (`meshlab.pro` is inside this)
     ├──...
     ├──...
     └──vcglib (Git clone)

Мне помогло =)

person user3405291    schedule 24.06.2020
comment
Итак, vcglib — это подмодуль meshlab. При клонировании мешлаба нужно просто использовать флаг --recursive. - person Alessandro Muntoni; 25.06.2020