libigl添加Viewer Menu时出现imgui相关的错误:无法打开包括文件: “imgui.h”: No such file or directory

news2024/12/27 12:37:10

libigl添加如下图所示的Viewer Menu时,出现了“无法打开包括文件: “imgui.h”: No such file or directory”的错误
很显然是libigl内嵌的imgui出了问题
在这里插入图片描述
从项目路径libigl-example-project-main\out\build\x64-Release\_deps\libigl-src\include\igl\opengl\glfw\imgui中查看发现并没有imgui.h这个文件
由于libigl的2.4版本是利用libigl的模板中的libigl.cmake自动下载libigl的相关库,这里应该是imgui相关文件下载不全的问题

先从https://github.com/ocornut/imgui中下载imgui所有相关文件,一开始本人向项目路径libigl-example-project-main\out\build\x64-Release\_deps\libigl-src\include\igl\opengl\glfw\imgui中直接添加imgui缺失的文件,但还是会出现无法找到文件的问题

为了解决这个问题,本人从libigl的先前版本的https://github.com/libigl/libigl-imgui/blob/master/CMakeLists.txt中得到灵感,决定从外部将imgui添加到项目libigl-example-project-main中,本人将先从https://github.com/ocornut/imgui中下载并解压后得到的imgui-master文件夹重命名为imgui并且放到项目libigl-example-project-main同级文件夹下,然后向项目libigl-example-project-main的CMakeLists.txt文件夹中添加如下如下内容:

add_library(imgui
		../imgui/imgui.cpp
		../imgui/imgui.h
		../imgui/imgui_demo.cpp
		../imgui/imgui_draw.cpp
		../imgui/imgui_tables.cpp
		../imgui/imgui_internal.h
		../imgui/imgui_widgets.cpp
		../imgui/imstb_rectpack.h
		../imgui/imstb_textedit.h
		../imgui/imstb_truetype.h
		../imgui/imgui_fonts_droid_sans.h
		../imgui/backends/imgui_impl_glfw.cpp
		../imgui/backends/imgui_impl_opengl3.cpp
)
target_include_directories(imgui PUBLIC ../imgui)
target_include_directories(imgui PUBLIC ../imgui/backends)
target_compile_definitions(imgui PUBLIC -DIMGUI_IMPL_OPENGL_LOADER_GLAD)
target_link_libraries(imgui PRIVATE glad glfw)

将imgui添加为一个库(注意上述中的imgui_fonts_droid_sans.h是从https://github.com/libigl/libigl-imgui中下载并额外添加到imgui文件夹中的,如果没有这个文件,程序运行后也会报找不到imgui_fonts_droid_sans.h的错误),最后在项目libigl-example-project-main的CMakeLists.txt文件夹中添加如下内容:

target_link_libraries(${PROJECT_NAME} igl::core igl::glfw imgui)

即将imgui库链接到项目中,程序运行后不报错,问题解决

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

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

相关文章

【谷粒商城之CompletableFuture异步编排】

本笔记内容为尚硅谷谷粒商城CompletableFuture异步编排部分 目录 一、线程回顾 1 、初始化线程的 4 种方式 2.、线程池的七大参数 运行流程: 3、常见的4种线程池 4、开发中为什么使用线程池 二、CompletableFuture 异步编排 业务场景 1、创建异步对象 …

无线化超轻薄,香港城市大学体感反馈贴片WeTac

此前,青亭网曾报道香港城市大学与腾讯Robotics X Lab合作研发的低电压体感方案,原理是通过微电流刺激来模拟触觉,可模拟微小物体的体感。近期,香港城市大学的一组科研人员也公布了一项类似的方案:WeTac,该方…

轻松上手:使用VSCode调试Python模块级代码的完整教程

安装VSCode:请确保已经安装了Visual Studio Code。安装Python插件:在VSCode中,转到Extensions视图 (View -> Extensions) 并搜索"Python"。找到由Microsoft提供的插件并点击安装。重启VSCode以确保插件安装正确。准备项目&#…

边听歌边充电LDR6028+LDR9201既能充电又能OTG方案

随着type-c接口的普及,市面上的手机,平板,笔电逐渐都采用了type-c接口,设备为了不断的追求更轻薄的机身和防水要求慢慢的取消了一些影响手机外观完整性的接口,比如3.5mm耳机孔。 有线耳机用户一般会选择使用C口转3.5m…

资深架构师解读零代码开发平台—如何不写代码实现流程审批

审批节点 “审批节点:” 流程中涉及审批时,需要用到审批节点。审批可通过或者驳回,也可以发送通知。可以多人会签/或签审批。 1. 审批节点 1.1 审批设置 ① 审批方式 审批方式默认为或签方式,只一个人审批即可 当选择会签时&#…

【英语】大学英语CET考试,口语考试介绍与备考1(讲义笔记)

文章目录 1、考试基本信息2、考试题型介绍3.1 短文朗读与回答问题(语音篇)3.1.1 语音篇真题3.1.2 语音篇6项基础知识3.1.3 语音语调练习(名言名句)3.1.4 短文朗读练习材料(真题) 3.2 自我介绍与看图说话&am…

IC面试,你一定要准备好这些(内附大厂面试题目)

大家都知道,面试的表现会对于个人职业发展的重要性,不仅能决定是否录用,还会影响到后期的谈薪,所以面试前一定要做好充分的准备。 怎么准备面试? 这里就建议简历上的表述尽量客观化、专业化,多使用数字和…

目标跟踪综述 (持续更新)

这几天对目标跟踪挺感兴趣的,但是在CSDN和知乎上面找的相关介绍资料都看的一知半解,所以自己找了一篇 2022-04-26 发表的综述文章作下笔记学习下。 目录 一、基于相关滤波的目标跟踪算法 1、相关滤波视频目标跟踪算法的框架 2、相关滤波目标跟踪算法…

GPT-4开源平替miniGPT-4来了,仅需23G显存单机可run,附论文、项目代码地址

来源 | 新智元 微信号:AI-era 先是ChatGPT的发布给世界带来了一点小小的NLP震撼,随后发布的GPT-4更是破圈计算机视觉,展现了非凡的多模态能力。 不光能读懂人类的梗,给个手绘草图甚至可以直接写出网站的代码,彻底颠覆…

百度地图 TypeError: Cannot set properties of undefined (setting ‘Bm‘)

这类问题出现的原因一般是,页面还没有加载完,地图开始加载,或者地图加载在页面加载之前 在项目中,我用isMapLoading控制地图的加载,false–加载,true–不加载,在data()中设置isMapLoadingtrue

矩阵的秩的计算

definition 1 矩阵的秩 矩阵的列空间的维度 矩阵的零空间的秩 矩阵的自由变量的个数 n - r(A) definition 2 这两个证明很好证 第三个证明可以用零空间的秩 example 1 hyperlink

HTTPS建立连接原理、SSL工作原理

HTTPS与HTTP相比有什么区别? HTTPS保证安全的原理是什么? HTTPS是如何建立连接的? 巨人的肩膀 3.1 HTTP 常见面试题 | 小林coding HTTP与HTTPS的区别 HTTP是超文本传输协议,传输的内容是明文(HTTP1.1及之前版本)。HTTPS在TCP与HT…

【LeetCode】27. 移除元素

题目链接:https://leetcode.cn/problems/remove-element/ 📕题目要求: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,…

【原创】生成文件MD5图像,类似于GitHub的像素风格头像

前言 我想通过文件的md5生成关于这个md5的图像,类似于GitHub的随机像素头像,用处是让这个md5更加直观,也能用于生成各种用户头像,跟GitHub一样。 网上搜了一下,没有现成的方法,只能有一篇类似的文章可以借…

第N2周:中文文本分类-Pytorch实现

目录 一、前言二、准备工作三、数据预处理1.加载数据2.构建词典3.生成数据批次和迭代器 三、模型构建1. 搭建模型2. 初始化模型3. 定义训练与评估函数 四、训练模型1. 拆分数据集并运行模型 一、前言 🍨 本文为🔗365天深度学习训练营 中的学习记录博客 …

运算符重载----赋值运算符重载

运算符重载 本质是函数调用,内置类型编译器直接比,自定义就去找对应类内重载的函数 如果定义在类外,需要访问私有的成员函数,只能将成员函数权限变为Public或者友元(非必须不用) ,所以一般重载…

Linux程序设计之字节序转换

1.在网络通信中,数据的存储方式十分重要,因为它影响到数据的准确性。如今,电脑和网络上数据的存储方式有两种:大端模式和小端模式。大端模式:数据的高位存储在内存的低位,数据的低位存储在内存的高位。小端…

【keil5开发ARM工程时使用STLink调试的技巧分享】

ARM工程开发小技巧系列文章 St link V2驱动安装方法 文章目录 ARM工程开发小技巧系列文章前言一、准备工作1. 硬件连接2. 安装stlink的驱动3. Keil 5配置 二、调试示例1.进入调试状态2. 调试演示2.1 复位,使程序复位到初始位置2.2 单步调试2.3 逐步调试2.4 跳出调…

Quartus中的逻辑锁定与增量编译

逻辑锁定功能可以将FPGA中的代码模块在固定区域实现,优化时序性能,提升设计可靠性。增量编译功能,可以使设计更快速时序收敛,加快编译速度。 LogicLock 使用Chip Planner创建逻辑锁定区域 打开Chip Planner,点击Vie…

Kubernetes Controller原理讲解

Controller原理 在 K8s 中,用户通过声明式 API 定义资源的“预期状态”,Controller 则负责监视资源的实际状态,当资源的实际状态和“预期状态”不一致时,Controller 则对系统进行必要的更改,以确保两者一致&#xff0…