我尝试在Ubuntu 16.4上使用libigl,但在构建示例102时遇到了一些错误。
首先,我在/ usr / local / include / Eigen /.
中安装了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 build
(3)cd build
(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警告(dev):不存在cmake_minimum_required命令。一个 代码行,如
cmake_minimum_required(VERSION 3.5)
应添加在文件的顶部。指定的版本可能 如果您希望支持较旧的CMake版本,请降低 项目。有关更多信息,请运行" cmake --help-policy CMP0000"。 此警告适用于项目开发人员。使用-Wno-dev来抑制它。
- 在CMakeLists.txt配置完成的CMake警告(dev):4(add_executable):未设置策略CMP0028:目标中的双冒号 name表示ALIAS或IMPORTED目标。运行" cmake --help-policy CMP0028"政策细节。使用cmake_policy命令设置 政策并取消此警告。
目标" 102_DrawMesh_bin"链接到目标" igl :: core"但目标 没找到。也许缺少find_package()调用 导入的目标或ALIAS目标丢失了吗?这个警告是为了 项目开发者。使用-Wno-dev来抑制它。
CMakeLists.txt上的CMake警告(dev):4(add_executable):策略 CMP0028未设置:目标名称中的双冒号表示ALIAS或
进口目标。运行" cmake --help-policy CMP0028"对于政策 细节。使用cmake_policy命令设置策略并禁止 这个警告。目标" 102_DrawMesh_bin"链接到目标" igl :: opengl"但是 找不到目标。也许缺少find_package()调用 是IMPORTED目标,还是缺少ALIAS目标?这个警告是 对于项目开发人员使用-Wno-dev来抑制它。
CMakeLists.txt上的CMake警告(dev):4(add_executable):策略 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
有人可以给我一些建议吗?
感谢。
答案 0 :(得分:1)
我不知道你是否已经整理好了。但是它们可以独立构建,因为cmake
与其他所有内容相比,构建/ make
过程可以独立完成。
请按照指示按照常规步骤进行操作。
cd libigl/tutorial
mkdir build
cd build
cmake ../
您可以修改CMakeLists.txt
中的tutorial
以仅制作您想要的目录,或使用ccmake ../
进行临时工作。
答案 1 :(得分:0)
(1)删除原始源代码并再次下载,生成一个名为libigl
的新文件夹,找到/mesh/libigl
。
(2)cd
到教程/libigl/tutorial/
。
(3)更改位于CMakeList.txt
的{{1}}。我只是禁用了有关示例章节的所有选项,请参阅下图。
(4)/libigl/tutorial/
(5)mkdir build
(6)cd build
(7)cmake ../
(8)在路径make
中,我获得了以下/mesh/libigl/tutorial/build/
个库。请参见下图。同样在子文件夹中,还会生成其他.a
个库。
(9).a
到路径cd
(10)/mesh/libigl/tutorial/102_DrawMesh/
(11)mkdir build
(12)cd build
执行cmake ../
后,我收到了以下错误,似乎有些库仍未发现。见下图。
所以,cmake ../
肯定失败了。
有什么想法吗?
感谢。