【发布时间】: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 感谢您的回复。我听从您的建议,并按照以下程序重试: