Windows11+VS2019配置Libigl-2.4.1

Windows11+VS2019配置Libigl-2.4.1

由于课题需要,所以出一篇配置Libigl的博客,制作不易,请多多点赞

一、官网下载

官网:https://libigl.github.io/

GitHub下载地址:https://github.com/libigl/libigl

这里我们选择下载Libigl-2.4.1版本:
在这里插入图片描述
下载后就是这个压缩包:
在这里插入图片描述
解压缩后的文件内容:

在这里插入图片描述

二、CMake编译

2.1 流程

  1. 在解压后的libigl-2.4.0目录中创建一个build目录,这个目录初始为空目录

  2. 打开cmake-gui,你需要提前在电脑中安装Cmake,这里我的Cmake的版本是:3.22.4

  3. 在下图中:

    1. 第一步就是设置【source code】:定位到你下载解压后的libigl-2.4.0目录,这里我只是把名字改成了libigl
    2. 第二步就是设置【build】:定位到libigl-2.4.0目录下新建的build目录
    3. 第三步就是点击【configure】,看到如图标识【4】中Configuring done标识构建完成,这里有一些坑我在下文提到,注意这一步需要网速好,所以如果一直下载不下来就一直下,有一个问题可以用下文中的解决方法进行解决,往下看。
    4. 第四步就是点击【Generate】
    5. 第五步就是点击【Open Project】
      在这里插入图片描述
      在这里插入图片描述

看到如图这两个标识就标识编译完成,恭喜!

2.2 踩坑一

报错信息:

  • File already exists but hash mismatch. Removing...
  • Boost 下载链接重定向到了 JFrog 的暂停页

错误说明:

  • JFrog 的 Boost 镜像服务已经暂停(或者说暂时下线),于是返回了个 HTTP 302 和后续 409 错误。这不是你电脑的问题,这是“Boost 官方镜像挂了”。
  • 实际下载的文件内容是空的或错误页,导致 SHA256 校验失败
  • 也就是下载的是空包或者 HTML 错误页

解决方法:手动下载 Boost 并放置到正确路径

  1. https://www.boost.org/releases/1.71.0/在该网站中下载boost_1_71_0.tar.bz2(这里也可以看到SHA256码与Cmake中的一致):

在这里插入图片描述

  1. 将下载下来的boost_1_71_0.tar.bz2放在之前build目录下的_deps\boost-subbuild\boost-populate-prefix\src这个目录下(注意,这个_deps目录是在build目录下面)

在这里插入图片描述

  1. 如果一致,重新构建就能跳过下载,直接构建 Boost。

2.3 踩坑二

报错信息:

  • fatal: unable to access 'https://github.com/libigl/CoMISo.git/': Failed to connect to github.com port 443 after 21097 ms: Could not connect to server

错误说明:

  • Git 尝试访问 GitHub(HTTPS 443 端口)失败了

解决方法:

  • 一直重试,这个就看人品了,相信自己可以成功!

三、在VS2019中编译

3.1 流程

在Cmake中点击【Open Project】后进入VS2019

注意:

  • 这里我们现在Debug模式下进行编译,后续再切换到Release再编译一遍,这样就可以根据你的项目引入不同的lib文件
  • 如果你的电脑是64位,就选择x64,否则选x86,这点也很重要
    在这里插入图片描述

第一步:打开如图的目录

在这里插入图片描述

第二步:随便选择一个项目,这里我以405_AsRigidAsPossible为例,注意,这里根据你的项目需求而定,由于我的项目需求,所以我分别编译了101、102、103、206、607,这样build/lib/Debug目录下就会出现我需要的lib文件

在这里插入图片描述

第三步:右键该项目,将该项目【设为启动项目】

在这里插入图片描述

第四步:点击开始调试

在这里插入图片描述

第五步:出现该页面,恭喜你编译成功,接下来切换到【Release】,然后再进行调试即可;

在这里插入图片描述

3.2 小提示

如果你也不知道需要什么,就一股脑全编译:右键【ALL_BUILD】设为启动项,然后启动即可,注意在DebugRelease模式下分别编译一遍

在这里插入图片描述

四,项目导入

由于Libigl主要是一个头文件库,我们一般只需要包含它的头文件即可

第一步:用VS2019打开你的项目或者新建一个项目,右键你的项目,点击【属性】,注意这里的配置,我选择的是【Release】、平台是【x64】,选择Release可以少一些bug,然后我的电脑本身也是64位,所以平台选择x64,根据自己的电脑配置和项目进行选择,接着选择【C/C++】:

在这里插入图片描述

第二步:选择【附加包含目录】,点击【编辑】

在这里插入图片描述

第三步:添加你的libigl目录下的include目录路径,如下:

在这里插入图片描述

总结:接着你就可以快快乐乐的使用Libigl

补充:之前编译得到的.lib文件你也可以导入到自己的项目中,在build目录下的lib目录,然后你会看到Debug目录和R

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/908827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

地球科学方向(Geoscience and Remote Sensing),1天见刊,当月可检索!

CSP科学出版社,旨在通过为研究人员提供最佳环境来发表、参考、阅读和引用他们的作品,从而为科学界服务。现已与科检易学术达成出版战略合作,现在联合共同出版高质量学术水平的期刊,为方便广大科研学者投稿方便,现已经建…

基于 Three.js 的 3D 模型快照生成方案

基于 Three.js 的 3D 模型快照生成方案 此方案通过 Three.js 渲染场景并异步生成图像数据,同时支持分辨率缩放和 Blob 格式输出,为模型预览、截图保存等需求提供完整解决方案。 问题分析: 使用html2canvas 生成的快照画布显示为空&#xff…

「Java基本语法」变量的使用

变量定义 变量是程序中存储数据的容器,用于保存可变的数据值。在Java中,变量必须先声明后使用,声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例:声明与初始化 public class VariableDemo {publi…

SpringCloud学习笔记-2

说明:来源于网络,如有侵权请联系我删除 1.提问:如果注册中心宕机,远程调用还能成功吗 答:当微服务发起请求时,会向注册中心请求所有的微服务地址,然后在向指定的微服务地址发起请求。在设计实…

Hac - NBh标准JSON协议使用说明文档

Hac - NBh 标准 JSON 协议使用说明文档 一、协议概述 Hac - NBh 标准 JSON 协议是专为物联网设备与服务器数据交互设计的通信协议。以 JSON 格式为基础,采用键值对(KV 值)组织数据,支持灵活选取数据项,通过 CBOR 格式实现高效传输,并利用 AES 128 加密保障数据安全。 …

k8s从入门到放弃之Service负载均衡

k8s从入门到放弃之Service负载均衡 在 Kubernetes (K8s) 中,Service 是一种抽象,它定义了一组逻辑上的 Pod 和访问它们的策略。Service 的主要目的是提供一种可靠的方式来访问一组具有相同标签(Label)的 Pod,即使这些…

【题解-洛谷】P10480 可达性统计

题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …

SpringCloud2025+SpringBoot3.5.0+gateway+webflux子服务路由报503

文章目录 前言一、问题二、原因1.分析2.配置静态路由再试3.定位 总结 前言 本来昨天就应该也记录下,免得忘记的,但是有点晚了,酒没写,真的是被坑惨了。 当然这也是追求最新的代价,也是对新技术、老知识点的重温…

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准

城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…

RAG 文档解析难点1:多栏布局的 PDF 如何解析

写在前面 在构建检索增强生成 (Retrieval-Augmented Generation, RAG) 应用时,高质量的数据源是成功的基石。PDF 作为一种广泛使用的文档格式,承载着海量的知识。然而,许多 PDF 文档,特别是学术论文、期刊、杂志和一些报告,都采用了多栏布局 (multi-column layout)。 直…

全面掌握Pandas时间序列处理:从基础到实战

时间序列数据在金融分析、物联网、商业智能等领域无处不在。作为Python数据分析的核心库,Pandas提供了强大而全面的时间序列处理功能。本文将系统介绍Pandas时间序列处理的各个方面,从基础概念到高级应用,帮助您在实际工作中高效处理时间序列…

vscode 离线安装第三方库跳转库

我安装的是C/C的函数跳转 下载的离线库: 项目首页 - vscode代码自动补全跳转插件离线安装包:cpptools-win32.vsix是一款专为VSCode设计的离线安装插件,特别适合无法连接网络的电脑环境。通过安装此插件,您的VSCode将获得强大的代码自动跳转…

GitHub 趋势日报 (2025年06月05日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 1472 onlook 991 HowToCook 752 ChinaTextbook 649 quarkdown 451 scrapy 324 age…

关于如何使用VScode编译下载keil工程的步骤演示

1、vscode的插件市场下载keil Assistant 2 、点设置 3、复制keil的地址 4、粘贴到第…

OD 算法题 B卷【最大岛屿体积】

文章目录 最大岛屿体积 最大岛屿体积 大于0的数表示陆地,0表示水,请计算由陆地、水组成的网格中最大岛屿的体积;陆地的数字之和表示所在岛屿的体积,岛屿总是被水包围,并且每座岛屿只能由水平或者垂直方向上相邻的陆地…

一文读懂 Docker Compose(白话版)

一、Docker Compose 是个啥? 想象你开餐厅: 单容器 一个厨师 👨🍳Docker Compose 整个后厨团队 👨🍳👩🍳🧑🍳 菜单 工作流程 用个菜单文件(…

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息&#xff0…

单例模式与锁(死锁)

目录 线程安全的单例模式 什么是单例模式 单例模式的特点 饿汉实现方式和懒汉实现方式 饿汉⽅式实现单例模式 懒汉⽅式实现单例模式 懒汉⽅式实现单例模式(线程安全版本) 单例式线程池 ThreadPool.hpp threadpool.cc 运行结果 线程安全和重⼊问题 常⻅锁概念 死…

CSS标题下划线动态进入和移开

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>CSS动态效果</title><style>div .title…

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…