CMake构建OpenGL项目

g2o库编译时出现OPENGL_gl_LIBRARY (ADVANCED)找不到的错误 一、问题描述 最近在学习SLAM,里面涉及到利用g2o优化,但是cmake始终编译失败,如下图所示: 实验环境:Ubuntu 18.04.4 二、解决过程 1.报错:OPENGL_gl_LIBRARY (ADVANCED), 猜测是缺少OPENGL的库,首先检查是否安装完整; 2.安装命令如下: $ sudo apt-get install libgl1-mesa-dev $ sudo apt-... 阅读详情

一.概要

我们在用CMake构建一个工程(项目)的时候,需要明白如下几件事情:
A.项目源代码在哪里?
B.项目头文件在哪里?
C.怎么生成静态或者动态库及库的位置?
D.程序链接的静态库在哪里?
E.项目中用到的已编译好的静态库库和实时编译的库与项目的依赖关系?
如果上面这几件事你知道怎么做了,多大的工程就都不是问题了。其实主要是明白库的编译、链接的工作机制,如果不熟悉,推荐看《深入理解计算机系统》和《程序员的自我修养》这两本书,讲解得很好。对于CMake这种工具的学习,个人觉得在用中学、有需求时再学是最有效的,下面就几种我时常碰到的项目结构的构建进行说明。

二.CMake构建OpenGL项目

这个OpenGL项目依赖glfw、glew、glm以及opengl核心库等库文件,文件目录如下:
这里写图片描述
其中,如上图所示的CMakeLists.txt文件内容为:

#为项目配置CMake的总入口,设置一些全局的变量
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project (SUMMARY_DEBUG)

#SUMMARY_DEBUG_SOURCE_DIR这个变量是在指定项目名称为SUMMARY_DEBUG后自动生成的变量,
#指的是我们在CMake GUI中为项目指定的源目录
QT5+OpenGL es2 + eglfs交叉编译安装(续) qt5.14交叉编译移植。 阅读详情

相关推荐

OpenSCAD -windows本机编译

很久之前发现了一个开源的编程式三维建模,非常有意思,详情见:OpenSCAD - The Programmers Solid 3D CAD Modellerhttps://openscad.org/ 花了三个晚上终于把openscad再windows上编译过了,真特么难编!大概记录一下流程: 首先参照github上Issue#2814 Work towards a functioning MSVC Build · Issue #2814 · openscad/openscad · GitHub 1、

三藏爱代码 1711

告别命令行混乱:在 VSCode 里用 CMake Tools 插件一键构建你的 OpenGL 项目(Mac 版)

本文详细介绍了如何在Mac OS上使用VSCode的CMake Tools插件一键构建OpenGL项目,告别命令行混乱。从环境准备到CMake配置,再到一键编译调试,提供完整的开发流程优化方案,帮助开发者提升效率。

weixin_42523389的博客 332

从GLFW到窗口:手把手教你用CMake在WSL2里构建你的第一个OpenGL C++项目

本文详细介绍了在WSL2环境下使用CMake构建现代C++ OpenGL项目的完整流程,涵盖GLFW窗口创建、GLAD函数加载与CMake项目配置等关键步骤。通过实战教程帮助开发者掌握在WSL2中搭建OpenGL开发环境的技巧,提升图形编程效率。

weixin_28693447的博客 199

VS2022+opengl环境配置

VS2022 opengl环境配置

2354

openGL学习之GLFW和GLAD的下载和编译

1是选择本机的编译器,我本机由于安装的是VS2022所以就选择这个,根据个人环境选择,2是选择编译的位数,我是编译64位的所以选择这个.选完以后单机Finish就行了.1是选择编译成动态库,不选择是编译成静态库,我这里就选择了,编译成动态库.2是选择编译存放的位置,选择完成后直接点击Configure然后在点击Generate。这是在build文件夹下生成的工程文件,然后选择GLFW.sln工程文件,直接双击打开.1是CMakeLists.txt存放路径,2是编译以后工程文件存放路径,选择好点击3.

m0_38036750的博客 2367

ImGUI项目构建指南:从零搭建cmake+MinGW64开发环境

本文提供了一份详细的ImGUI项目构建指南,重点讲解如何在Windows平台上使用CMake和MinGW64工具链从零搭建开发环境。内容涵盖环境配置、项目目录结构设计、CMake脚本编写、GLFW后端集成以及首个ImGUI应用程序的编译与运行,帮助C++开发者快速掌握轻量级即时模式GUI的开发流程。

docker7nomad的博客 1054

用CMake和VSCode在WSL2里搭建现代OpenGL开发环境:从GLFW窗口到第一个三角形

本教程详细介绍了如何在WSL2环境中使用CMake和VSCode搭建现代OpenGL开发环境,从GLFW窗口创建到渲染第一个彩色三角形。涵盖环境配置、GLFW安装、GLAD集成、CMake项目工程化以及VSCode调试技巧,为开发者提供完整的OpenGL开发工作流指南。

weixin_30781775的博客 380

OpenGL+CMake+MinGW+VSCode一键编译调试的配置

OpenGL-CMake-MinGW-VSCode环境配置

u012920543的专栏 684

VS2019配置OpenGL(glad + glfw + glm + SDL)

目录1. 安装Visual Studio20192. OpenGL安装2.1 各种库的区别2.2 安装cmake2.3 配置glfw2.3 配置glad2.4 配置VS3. 测试 1. 安装Visual Studio2019 直接官网安装community版,选择安装以下功能。 2. OpenGL安装 2.1 各种库的区别 glut (OpenGL Utility Toolkit) OpenGL工具库 OpenGL Utility Toolkit。OpenGL的基本库,但是很久不更新了,版本太老,不推荐

almost_afei的博客 6358

告别配置地狱:用CMake和VS2022一键搞定OpenGL开发环境(GLFW+glad保姆级流程)

本文详细介绍了如何使用CMake和Visual Studio 2022一键配置OpenGL开发环境,涵盖GLFW和glad的集成流程。通过自动化工具链和vcpkg依赖管理,开发者可以快速搭建跨平台的OpenGL项目,告别繁琐的手动配置,专注于图形编程核心开发。

weixin_33695450的博客 431

从零开始:libigl的跨平台安装与项目构建实战

本文详细介绍了libigl几何处理库的跨平台安装与项目构建实战。通过分步指南,从开发环境准备、源代码获取,到使用CMake进行项目配置与编译,并运行首个示例程序,帮助开发者快速掌握这一高效C++库的部署流程。文章还提供了基于官方模板创建自定义项目以及手动配置CMakeLists.txt的进阶方法,并总结了常见问题的解决方案。

weixin_27743991的博客 351

windows配置OpenGL(VS C++版)

安装库以及开发环境 vs2022 官网下载就可以,刚开始下载的时候会有卡顿,是因为网络ip的问题,我尝试了一些改dns的方法,但是没有用,后来通过ip更换工具,把网换到了广东电信就可以了。这里下载的是一个下载器,只需要用ip更换工具的免费时长把那个下载器下好就可以了。 开发环境配置 OpenGL/GLSL 一般显卡都自带,我的显示是4.6,可以选择下载GLView查看。其实可以直接跳过这一步。 GLFW 需要用到CMAKE“构建”GLFW,目的是生成 glfw3.lib文件 GLFW文件夹 操作步骤

weixin_40645047的博客 2496

OpenGL开发必备:从源码编译Assimp库的完整指南与实战

在计算机图形学与3D应用开发中,模型加载是连接3D资产与渲染管线的关键技术环节。其核心原理在于将外部模型文件(如OBJ、FBX)中的几何、材质与纹理数据,解析为程序可用的内存结构。这项技术的价值在于实现了艺术资产与程序代码的解耦,极大提升了开发效率。Assimp(Open Asset Import Library)作为业界广泛使用的开源模型导入库,通过统一的接口支持数十种格式,是OpenGL、Vulkan等图形API开发者处理3D模型的基石工具。掌握其从源码编译与集成的完整流程,不仅能避免预编译库的版本与依

weixin_42523389的博客 304

OpenGL入门002——顶点着色器和片段着色器

opengl绘制三角形

weixin_73622063的博客 1901

OpenGL创建窗口

OpenGL创建窗口前言GLFW构建GLFWCMake编译我们的第一个工程链接Windows上的OpenGL库Linux上的OpenGL库GLAD配置GLAD 前言 在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地将这些操作抽象(Abstract)出去。这意味着我们不得不自己处理创建窗口,定义OpenGL上下文以及处理用户输入。 幸运的是,有一些库已经提供了我们所需的功能,其中一部分是特别针

希望我的博客,能帮上你解决学习中工作中所遇到的问题 951

Qt Creator创建项目

Qt Creator创建项目创建项目选择构建系统使用项目向导选择项目类型为Python应用程序创建基于窗口小部件的Qt将文件添加到项目创建C ++类创建资源文件创建OpenGL片段和顶点着色器将子项目添加到项目将键盘快捷键绑定到向导 创建项目 创建项目使您能够: 将文件分组在一起 添加自定义构建步骤 包括表格和资源文件 指定运行应用程序的设置 在向导的帮助下,可以在Qt Creator中设置新项目,该向导将指导您逐步完成项目创建过程。向导会提示您输入该特定类型的项目所需的设置,并为您创建必要的文件。您可以添

希望我的博客,能帮上你解决学习中工作中所遇到的问题 776

飞塔防火墙认证绕过漏洞(CVE-2022-40684)深度剖析与实战复现

本文深度剖析了Fortinet飞塔防火墙高危认证绕过漏洞CVE-2022-40684的原理与影响。该漏洞允许攻击者通过构造包含特定Forwarded头和User-Agent的HTTP请求,无需凭证即可绕过认证,以管理员身份访问设备。文章详细演示了从环境搭建到实战复现,最终植入SSH密钥获取控制权的完整过程,并提供了漏洞挖掘技巧与关键防御建议。

d6e7f8g9h的博客 708

BAPI_OUTB_DELIVERY_CHANGE扩展指南:利用EXTENSION2与SMOD_V50B0001实现自定义字段更新

本文详细解析了如何利用BAPI_OUTB_DELIVERY_CHANGE的EXTENSION2参数与增强点SMOD_V50B0001,在不修改标准代码的前提下,安全、标准地更新SAP交货单的自定义字段。通过清晰的步骤指南和实战代码示例,帮助开发者掌握通过增强字段实现定制化业务需求的完整流程与调试技巧。

fanta的博客 451

傻瓜式下载、安装CentOS7操作步骤

CentOS7.9下载和安装操作步骤

weixin_45608163的博客 1万+

第十六篇:Camx IFE 、OPE 各 port口功能定义

需要注意的是,类似 CSLTFEPortIdRawDump 是没有downscale功能的,所以如果遇到fov不正确的问题,可以排除下TFE这边的 output port是否被接到了 CSLTFEPortIdRawDump 上面来。我们知道Camx 的IFE 、OPE有不少的output port,各个port是有哪些功能的呢?老一点的框架平台,采用的TEF、OPE。

233

滤波电路Multisim电路仿真实验汇总——硬件工程师笔记

本文系统介绍了滤波电路的基础知识及其应用。首先按频率选择性和实现方式对滤波电路进行分类,详细阐述了低通、高通、带通、带阻滤波器以及无源、有源滤波器的特点。接着重点分析了桥式整流电容滤波、电感滤波、LC滤波和CRπ型滤波四种典型电路的工作原理、应用场景及设计要点。通过理论公式和实际案例,指导如何选择滤波元件参数,考虑寄生效应,并通过仿真验证设计效果。最后提供了硬件工程师笔试面试相关的技术资源链接,包括器件知识、电路仿真及企业真题解析等内容。本文可作为电子电路设计领域工程技术人员的学习参考资料。

XU157303764的博客 2166

Python爬虫实战:中国土地市场网招拍挂数据抓取与分析

本文详细介绍了如何使用Python爬虫技术从中国土地市场网抓取土地招拍挂数据,并进行初步的数据分析与可视化。文章涵盖了爬虫的基本原理、反爬虫策略应对、数据清洗与存储、数据分析与可视化等多个方面,为土地市场研究者提供了一套完整的数据获取与分析解决方案。

2201_76125261的博客 684

FPGA工程师面试试题集锦11~20

时钟抖动是指芯片的某一个给定点上时钟周期发生暂时性变化,也就是说时钟周期在不同的周期上可能加长或缩短。它是一个平均值为0的平均变量。

FPGA/MATLAB学习教程/源码/项目合作开发 678

Android Keymaster- 设备集成笔记 嵌入式

本文介绍了 Android Keymaster 的原理、使用方法和示例源代码。Android Keymaster 是一个重要的安全组件,为开发者提供了加密和解密功能,用于保护设备上存储的敏感数据。Android Keymaster 是 Android 系统的一个安全组件,用于保护设备上存储的敏感数据。Keymaster 使用基于硬件的密钥存储,同时提供了一组 API,让开发者可以在应用程序中使用这些加密功能。在嵌入式设备中,Android Keymaster 是一个重要的组件,用于提供加密和解密功能。

LrFortran的博客 671

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 信号与系统学习(2)-跃阶信号
下一篇: 卷积理解与思考
Linear_Luo
博客等级 码龄10年 88粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值