Libigl 示例 102 测试错误

Posted

技术标签:

【中文标题】Libigl 示例 102 测试错误【英文标题】:Libigl example 102 testing error 【发布时间】:2018-09-04 23:56:26 【问题描述】:

我尝试在 Ubuntu 16.4 上使用 libigl,但在构建示例 102 时遇到了一些错误。

首先,我将 Eigen 安装在 /usr/local/include/Eigen/ 中。

然后,我按照以下命令下载了 libigl 代码:

git clone --recursive https://github.com/libigl/libigl.git

接下来,我尝试构建示例 102。根据这个建议。

The examples can also be built independently using the CMakeLists.txt inside each example folder.

所以在下载源代码后,我直接构建示例 102,而不是通过 /libigl/tutorial/ 中对应的 CMakeLists.txt 构建整个教程。

我喜欢这样: (1) cd 到文件夹:..../libigl/tutorial/102_DrawMesh

(2) mkdir 构建

(3) 光盘构建

(4) cmake ../

cmake ../ 后出现以下错误,似乎找不到../libigl/tutorial/102_DrawMesh 中的CMakeLists.txt 中指定的所需链接库。


以下是错误:

-- C 编译器标识为 GNU 5.4.0 -- CXX 编译器标识为 GNU 5.4.0 -- 检查工作的 C 编译器:/usr/bin/cc -- 检查工作的 C 编译器:/usr/bin/cc -- 工作 -- 检测 C 编译器 ABI 信息 -- 检测 C 编译器 ABI 信息 - 完成 -- 检测 C 编译特性 -- 检测 C 编译特性 - 完成 -- 检查工作的 CXX 编译器:/usr/bin/c++ -- 检查工作的 CXX 编译器:/usr/bin/c++ -- 工作 -- 检测 CXX 编译器 ABI 信息 -- 检测 CXX 编译器 ABI 信息 - 完成 -- 检测 CXX 编译特性 -- 检测 CXX 编译功能 - 在 CMakeLists.txt 中完成 CMake 警告(开发):不存在 cmake_minimum_required 命令。一种 一行代码如

cmake_minimum_required(VERSION 3.5)

应该添加到文件的顶部。指定的版本可能 如果您希望为此支持较旧的 CMake 版本,请降低 项目。有关更多信息,请运行“cmake --help-policy CMP0000”。 此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。

-- 在 CMakeLists.txt:4 (add_executable) 处配置完成的 CMake 警告 (dev):未设置策略 CMP0028:目标中的双冒号 名称表示 ALIAS 或 IMPORTED 目标。运行“cmake --help-policy CMP0028”获取策略详细信息。使用 cmake_policy 命令设置 政策并禁止显示此警告。

目标“102_DrawMesh_bin”链接到目标“igl::core”,但目标 没有找到。可能缺少 find_package() 调用 IMPORTED 目标,还是缺少 ALIAS 目标?此警告适用于 项目开发商。使用 -Wno-dev 来抑制它。

CMakeLists.txt:4 (add_executable) 中的 CMake 警告 (dev):策略 未设置 CMP0028:目标名称中的双冒号表示 ALIAS 或 导入的目标。为策略运行“cmake --help-policy CMP0028” 细节。使用 cmake_policy 命令设置策略并抑制 这个警告。

目标“102_DrawMesh_bin”链接到目标“igl::opengl”,但 未找到目标。可能缺少 find_package() 调用 IMPORTED 目标,还是缺少 ALIAS 目标?这个警告是 对于项目开发人员。使用 -Wno-dev 来抑制它。

CMakeLists.txt:4 (add_executable) 中的 CMake 警告 (dev):策略 未设置 CMP0028:目标名称中的双冒号表示 ALIAS 或 导入的目标。为策略运行“cmake --help-policy CMP0028” 细节。使用 cmake_policy 命令设置策略并抑制 这个警告。

目标“102_DrawMesh_bin”链接到目标“igl::opengl_glfw”,但 未找到目标。可能缺少 find_package() 调用 IMPORTED 目标,还是缺少 ALIAS 目标?这个警告是 对于项目开发人员。使用 -Wno-dev 来抑制它。

-- 生成完成 -- 构建文件已写入:/home/chayfung/Workspace/Mesh/libigl/tutorial/102_DrawMesh/build


谁能给我一些建议?

谢谢。

【问题讨论】:

那4行CMakeLists.txt绝对不能独立构建:github.com/libigl/libigl/blob/…。不知道为什么文档会这样说。您可以构建父 CMakeLists.txt(对应于教程中的所有示例),并在其中注释未定义的示例。请注意,您可以通过将选项TUTORIALS_CHAPTER<N> 设置为关闭来禁用某些章节的示例。例如,将选项 -DTUTORIALS_CHAPTER2=OFF 传递给 cmake 以禁用第 2 章中的示例。 @Tsyvarev 感谢您的回复。我听从您的建议,并按照以下程序重试: 【参考方案1】:

我不知道你是否已经解决了。但是它们可以独立构建,因为在 cmake 与其他所有内容之后,build/make 过程可以独立完成。

请按照指示执行常规步骤。

cd libigl/tutorial
mkdir build
cd build
cmake ../

您可以修改tutorial 中的CMakeLists.txt 以仅创建您想要的目录,或使用ccmake ../ 做一些临时的事情。

【讨论】:

【参考方案2】:

(1) 把原来的源代码去掉重新下载,生成一个新的文件夹libigl,定位到/mesh/libigl

(2)cd到教程/libigl/tutorial/

(3) 更改位于/libigl/tutorial/ 中的CMakeList.txt。我只是禁用了示例章节的所有选项,请参见下图。

tutorial_CMakeLists_txt-1

tutorial_CMakeLists_txt-2

tutorial_CMakeLists_txt-3

tutorial_CMakeLists_txt-4

(4)mkdir build

(5)cd build

(6)cmake ../

(7)make

(8) 在路径/mesh/libigl/tutorial/build/ 中,我得到了以下.a 库。请参见下图。同样在子文件夹中,还会生成额外的.a 库。

tutorial_build_libraries

(9) cd 到路径 /mesh/libigl/tutorial/102_DrawMesh/

(10)mkdir build

(11)cd build

(12)cmake ../

执行cmake ../后,出现以下错误,似乎有些库仍未找到。见下图。

cmake_error-1

cmake_error-2

所以,make 肯定失败了。

有什么想法吗?

谢谢。

【讨论】:

以上是关于Libigl 示例 102 测试错误的主要内容,如果未能解决你的问题,请参考以下文章

SAP在提折旧时的错误 在测试时系统报了一个错误: 102A 科目 17020400 不是调整科目 。

尝试运行一个简单的 Selenium 注册测试错误

LeetCode 451. 根据字符出现频率排序 / 645. 错误的集合 / 726. 原子的数量 / NC52 括号序列 / NC102 最近公共祖先 / NC78 反转链表

Facebook SDK - iOS - 分享 URL 失败(错误 102)

连接到 JIRA 时出现间歇性 102 错误 (ERR_CONNECTION_REFUSED)

RTM:ERROR 错误代码 102: sendMessage 失败,参数为:"messageType":"TEXT"