0

我尝试在 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 编译功能 - 完成 CMake 警告(开发) CMakeLists.txt:不存在 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”,但未找到目标。也许 IMPORTED 目标缺少 find_package() 调用,或者缺少 ALIAS 目标?此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。

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

目标“102_DrawMesh_bin”链接到目标“igl::opengl”,但未找到目标。也许 IMPORTED 目标缺少 find_package() 调用,或者缺少 ALIAS 目标?此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。

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

目标“102_DrawMesh_bin”链接到目标“igl::opengl_glfw”,但未找到目标。也许 IMPORTED 目标缺少 find_package() 调用,或者缺少 ALIAS 目标?此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。

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


有人可以给我一些建议吗?

谢谢。

4

2 回答 2

1

不知道你有没有整理出来。但是它们可以独立构建,因为在cmake完成其他所有操作之后,构建/make过程可以独立完成。

请按照说明执行常规步骤。

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

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

于 2018-05-15T03:12:11.623 回答
0

(1) Remove the original source code and download it again, generated a new folder named libigl, locating /mesh/libigl.

(2) cd to the tutorial /libigl/tutorial/.

(3) Change the CMakeList.txt locating in /libigl/tutorial/. I just only disable all the options regarding example chapters, please see the following figures.

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) In the path /mesh/libigl/tutorial/build/, I got the following .a libraries. See the following figures. Also in the subfolders, additional .a libraries are also generated.

tutorial_build_libraries

(9) cd to the path /mesh/libigl/tutorial/102_DrawMesh/

(10) mkdir build

(11) cd build

(12) cmake ../

After carry out the cmake ../, I got the following errors, it appears that some libraries were still unfound. See the following figures.

cmake_error-1

cmake_error-2

So, the make definitely failed.

Any ideas?

Thanks.

于 2018-03-27T14:35:22.467 回答