【问题标题】:Unable to compile MeshLab from source on Ubuntu 16.10无法在 Ubuntu 16.10 上从源代码编译 MeshLab
【发布时间】:2017-06-03 04:07:57
【问题描述】:

我已下载 MeshLab 源并将我的 Qt 安装更新到最新版本(Qt Creator 4.2.0 构建于 2016 年 12 月 9 日)。在我第一次尝试编译 meshlab_full 项目时,我发现我必须将 plugins_experimental 下的 io_txt 文件夹重命名为 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文件夹。如何获得?

谢谢, 丰富

【问题讨论】:

    标签: compilation meshlab


    【解决方案1】:

    您需要获取 vcg 库。它必须与您的 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
    

    编译说明为there

    【讨论】:

    • 感谢 Eric - 感谢您的帮助 ;) 我下载了 vcg 文件并将它们放在正确的位置,然后构建了 external.pro 项目。这让我摆脱了之前看到的错误,但仍然无法构建完整或迷你的 meshlab。我得到的错误是“错误:‘ColorConverter’尚未声明”。我已经做了相当多的探索,但不知道 ColorConverter 是 Qt 的东西还是 MeshLab 的东西。你有什么见解吗?谢谢,丰富
    • 给出一些详细的日志。 vcglib 可能不在好位置。我遇到 vcglib 的主要问题是我没有结帐到开发分支。
    • 抱歉延迟@Eric - 我必须找到一种合适的方法来共享编译器输出。这里是:drive.google.com/file/d/0B2i1fbB8wvDySnVZMzMzVTZXQU0/… 谢谢!
    • 将meshlab-2016.12 目录重命名为meshlab。您必须在/home/rich/Downloads/3dTools/MeshLab/Source 中找到meshlab 和vcglib 目录。这是我编译的日志: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 »
    • 再次感谢@Eric。这让我走得更远,但现在我有一个不同的错误。编译输出:drive.google.com/file/d/0B2i1fbB8wvDyOWJFQjA4NGt0dG8/…这是我的文件夹结构:drive.google.com/file/d/0B2i1fbB8wvDyZXNPdjBKbmlNSlU/…我需要在不同的评论中继续...
    【解决方案2】:

    更新

    正如@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 library里面的VCG library分叉并克隆了:

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

    它对我有用 =)

    【讨论】:

    • 现在,vcglib 是 meshlab 的一个子模块。克隆meshlab时,只需使用标志--recursive即可。
    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多