首页 > 其他分享 >[openGL] qt5版本+mingw编译Assimp库+调用

[openGL] qt5版本+mingw编译Assimp库+调用

时间:2024-03-25 13:29:34浏览次数:25  
标签:4.4 qt5 CMAKE 编译 openGL Assimp 源码 版本

目录

一 版本

二 编译问题

三 CMAKE准备

四 开始编译

4.1 准备Assimp源码

4.2 编译工具准备

4.3 生成Assimp库

4.4 使用Assimp

4.4.1 准备

4.4.2 加载模型

4.4.3 模型效果


一 版本

Assimp官网上已经停止更新截至在3.3.1版本,但是这个版本编译是最稳定的,较新的版本需要在github上下载编译

  • CMAKE: cmake的版本也要跟源码对应的差不多,可以参考二者的发布时间来取决于采用哪种编译。
  • 如果因为版本问题出现的一些警告高者提示,如果是警告基本上不需要管,进行下一步就行,也可以根据警告提示,去CMAKE官网查看对应版本的更新来修改源码。

我使用的CMAKE版本是: CMAKE 3.20.0 --> 下载地址

软件包名-->cmake-3.20.0-rc1-windows-x86_64.msi

  • 如果是linux下面操作逻辑是完全一致的,只不过命令行模式下可能需要手动配置一下环境变量

Assimp版本是 3.3.1--->https://github.com/assimp/assimp/tree/v3.3.1 

二 编译问题

  • 网上很多的编译报错提示说是需要DirectX的支持,但其实是不需要的,试想一下,DirectX可是只有windows支持的,那为openGL(跨平台的)编译一个导入数据的库,又怎么可以受到DirectX的影响呢(个人理解)。
  • 对于较新版本的Assimp版本可能会报一些未定义的问题,这个就需要一步一步的去解决了,我这里只编译了最快并且最不容易出错的版本3.3.1
  • 这个版本照着教程,即使系统中没有任何配置(oepnGL等库)也不会出问题.如果编译的库有问题,那需要检查一下环境变量(CMAKE,MingW等),如果在环境变量中有多个版本的mingw编译器,并且在后面的编译步骤中没有手动指定编译器,就有可能导致识别到别版本的编译器.

三 CMAKE准备

照着前面的地址会下载到一个Cmake-gui

  • 前两步直接点击next就行,不再演示
  • 这里选择为所有的用户都添加CMAKE的环境变量,并且创建了一个桌面图标

  • 选择CMAKE的按照路径,其实这个也不是很大,根据个人喜好安装到指定位置就行

  • 点击install等待安装完成即可

四 开始编译

4.1 准备Assimp源码

  • 将前面地址的Assimp下载到本地文件夹中,不要用中文路径

4.2 编译工具准备

  • 打开cmake-gui工具,在源码路径处选择,下载的源码的根目录,然后再编译路径下选择相同目录下的build目录
  • build目录不存在,直接点击Yes构造时创建就行,也可以提前创建

  • 选择构建工具MinGW MakeFiles

  • 选中对应的MinGW编译器中的gcc和g++可执行文件就行,位于qt对应版本的tools目录下

  • 点击Configure进行编译前配置
  • 出现这种警告可以不用管,这是一些cmake版本升级后已经移除的一些配置,它上面说在2.8.12之后已经被移除了的一些规则,可能你是要2.8.12版本的cmake就不会有警告,但这不需要去更新cmake版本
  • 再出现红色区域中的: Configuring done 就可以了、

  • 点击Generate开始构建工程
  • 生成Generating done表示构建成功
  • 这时候CMAKE-GUI的工作就完成了,可以关闭了。

4.3 生成Assimp库

  • 进入刚才构建的build目录,并且以管理员模式打开命令行,也可以按住shift键在右键菜单中打开powershell。
  • 输入命令  mingw32-make -j8 等待执行完成
  • 如果mingw32-make命令未发现,那么需要为mingw设置系统环境变量

mingw32-make -j8

  • 这里其实已经链接并生成了libassimp.dll,查看日志后发现报错是因为在进行gtest环节无法正确链接到github上的源码,导致gtest构建中找不到CmakeList.txt文件,这并不影响库的使用

4.4 使用Assimp

4.4.1 准备

  • 需要build/code目录下生成的libassimp.dll动态库
  • 需要build目录下生成的revison头文件
  • 需要源码SRC下面的assimp整个目录

4.4.2 加载模型

具体加载模型的知识后面补充后会在这里给出链接。

qt源码--->这里 

  • 首先创建一个include目录将准备好的assimp目录放进入,并且将revison头文件也放到assimp目录下
  • 然后创建一个lib目录将libassimp.dll放进去,使用下面的方法在qt中就能使用asimp加载模型了。
INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/lib -lassimp

4.4.3 模型效果

  • 如果是下载的源码,需要点击模型选择进行加载,默认没有加载任何模型

标签:4.4,qt5,CMAKE,编译,openGL,Assimp,源码,版本
From: https://blog.csdn.net/qq_45280097/article/details/137010137

相关文章

  • Qt5乱码的问题
     亲测有效!!!现状:网上总是存在众多关于Qt5乱码的问题和文章,离谱的是很多都是用Qtcreator这个工具,最后得到的结论是Qt在中文上跨平台做的不好,比如在中文处理上要用类似latin1等函数。澄清:Qt对中文支持没啥问题,也不用什么特殊的函数,为了解决烦恼,必须了解下文件编码知识,比如utf-......
  • QT5.14.2 Qt5组件随心所欲,从界面到实用一把抓
    Qt5作为跨平台的C++图形界面框架,自带了丰富的组件供我们使用。无论是构建精美的UI界面,还是满足各种实用的需求,Qt5总能为我们意趣盎然地施展绝活。今天,就让我们一同探索Qt5中的日历组件、登录窗口、文件对话框、颜色选择对话框、进度条和Timer组件,见识它们的强大之处!一、......
  • 使用 Pyqt5 GUI 页面请求 FastAPI 后端 API,实现逻辑功能
    使用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做一个登录注册页(四)本文将介绍用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做的一个登录注册页,使用邮箱接收验证码,本文介绍是前后端分离的实现方式,厚后端使用FastAPI+SQLAlchemy+Redis+Celery,你可以将PyQt5改为PySide2以获得更宽松......
  • 【Qt5】QVariant
    2024年3月22日,周五下午什么是QVariantQVariant是Qt框架中用于处理各种数据类型的通用类。它可以存储几乎任何类型的数据,并且能够在不同的Qt类之间进行类型转换。QVariant在Qt中被广泛用于处理不同的数据类型,包括基本数据类型(如整数、浮点数、布尔值等)、字符串、自定......
  • Centos7交叉编译QT5.11.1+AArch64架构
    一、准备工作1、更新系统软件,目的是使用新版本的gcc等,还要保证磁盘空间足够1yumupdate2yuminstallgccgcc-c++3yuminstallmesa-libGL-develmesa-libGLU-develfreeglut-devel2、到linaro下载编译链工具安装aarch64(arm64)编译链工具。国产CPU,如飞腾、华为麒麟等......
  • opengl日记12-opengl坐标系统
    文章目录环境代码CMakeLists.txtvertexShaderSource.vsmain.cpp总结环境系统:ubuntu20.04opengl版本:4.6glfw版本:3.3glad版本:4.6cmake版本:3.16.3gcc版本:10.3.0在<opengl学习日记11-opengl的transformtions变换示例>的基础上,进行修改,实现坐标系统变换效果。代码CM......
  • opengl日记7-ubuntu20.04开发环境opengl拓展glfw和glad环境搭建
    文章目录ubuntu中安装opengl核心环境安装glfw安装glad测试验证程序vscode的task.json配置如下note参考ubuntu中安装opengl核心环境可执行如下命令进行整体安装:sudoapt-getinstalllibgl1-mesa-dev*或者单独安装1、提供编译程序必须软件包的列表信息sudoapt......
  • 飞凌RK3568开发板移植Qt5.9.8
    1、安装Ubuntu18.04虚拟机,并开启root登录2、gcc环境搭建从官方提供的网盘资料OK3568-C_ForlinxDesktop20.04_用户资料_R3(更新日期:20231201),解码\Linux\源码\OK3568-linux-source,在prebuilts文件夹将gcc拷贝到虚拟机(Ubuntu18.04)的/usr/local目录下 设置环境变量,修改/etc/pr......
  • 【无标题】计算机图形学OpenGL基础
    一、OpenGL的主要功能模型绘制模型观察颜色模式光照应用图像效果增强位图和图像处理纹理映射实时动画交互技术二、OpenGL的绘制流程----------工作方式**一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenG......
  • opengl日记10-opengl使用多个纹理示例
    文章目录环境代码CMakeLists.txt文件内容不变。fragmentShaderSource.fsvertexShaderSource.vsmain.cpp总结环境系统:ubuntu20.04opengl版本:4.6glfw版本:3.3glad版本:4.6cmake版本:3.16.3gcc版本:10.3.0在<opengl学习日记9-opengl使用纹理示例>的基础上,拓展使用多个纹......