macOS clion配置pmp-library环境

本文介绍了在macOS系统的Clion中配置pmp-library环境的方法。pmp-library提供了计算机图形学中mesh的half - edge数据结构及相关算法和可视化工具。内容涵盖pmp的环境配置、Clion导入pmp的方法,还提及代码测试及可能出现的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

macOS clion配置pmp-library环境

pmp-library提供了计算机图形学中mesh的half-edge数据结构表示以及一些有效的算法和可视化工具
pmp-library官网
本文将介绍其在mac上的环境配置和在clion中的使用

1.pmp的环境配置

首先在终端中输入如下命令:

git clone --recursive https://github.com/pmp-library/pmp-library.git

等待安装完成后

cd pmp-library
mkdir build
cd build
cmake ..
make
sudo make install

完成后pmp将会被默认安装在/usr/local的lib和include文件夹中,更多的自定义安装选项可以参照官网中的方法进行配置

2.Clion导入pmp

方法一:
CMakeList.txt

cmake_minimum_required(VERSION 3.14) //自动生成
project(项目名称) //自动生成
find_package(pmp)
set(CMAKE_CXX_STANDARD 11) //自动生成
include_directories(pmp)
add_executable(项目名 项目的cpp文件) //自动生成
target_link_libraries(项目名 pmp) 

方法二:
CMakeList.txt

cmake_minimum_required(VERSION 3.14) //自动生成
project(项目名称) //自动生成
set(CMAKE_CXX_STANDARD 11) //自动生成
include_directories(/usr/local/include) //pmp所在文件夹
add_executable(项目名 项目的cpp文件) //自动生成
target_link_libraries(项目名 /usr/local/lib/libpmp.dylib) //libpmp.dylib所在路径

若CMakeList没有导入lib可能会出现如下错误:

Undefined symbols for architecture x86_64:
  "pmp::SurfaceMesh::add_vertex(pmp::Matrix<float, 3, 1> const&)", referenced from:
      _main in main.cpp.o
  "pmp::SurfaceMesh::add_triangle(pmp::Vertex, pmp::Vertex, pmp::Vertex)", referenced from:
      _main in main.cpp.o
  "pmp::SurfaceMesh::SurfaceMesh()", referenced from:
      _main in main.cpp.o
  "pmp::SurfaceMesh::~SurfaceMesh()", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

3.代码测试

#include <iostream>
#include "pmp/SurfaceMesh.h"
using namespace pmp;
using namespace std;
using Point = pmp::Point;
int main() {
    SurfaceMesh mesh;
    Vertex v0, v1, v2, v3;
    v0 = mesh.add_vertex(Point(0, 0, 0));
    v1 = mesh.add_vertex(Point(1, 0, 0));
    v2 = mesh.add_vertex(Point(0, 1, 0));
    v3 = mesh.add_vertex(Point(0, 0 ,1));
    mesh.add_triangle(v0, v1, v3);
    mesh.add_triangle(v1, v2, v3);
    mesh.add_triangle(v2, v0, v3);
    mesh.add_triangle(v0, v2, v1);
    cout << "vertices: " << mesh.n_vertices() << std::endl;
    cout << "edges: "    << mesh.n_edges()    << std::endl;
    cout << "faces: "    << mesh.n_faces()    << std::endl;
    return 0;
}

运行结果:

vertices: 4
edges: 6
faces: 4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值