IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> OGRE3D 使用CMake + MinGW Make源码编译安装 -> 正文阅读

[游戏开发]OGRE3D 使用CMake + MinGW Make源码编译安装

本文更倾向于一种日志记录,所以有些地方可能写的不会太清楚,若有读者无法理解其中某些地方还请多多谅解(学习路桑就是苦逼地不断csdn和stackoverflow…@_@)

官网下载源码

官网选择下载最新版本OGRE
OGRE官网直接百度即可,一般全是英文的那一条链接就是。

根据官方文档进行CMakeGUI编译,以及遇到的坑

官方初学者文档链接:链接
博主选择使用MinGW Make和GNU g++来使用ORGE,因为VS2019实在是太重型,过于笨重了,开一个项目要好久。推荐大家学习使用CMake,感觉以后上班配套VS的可能性不大(估计都是VScode),这种IDE的商用版本好贵的似乎。
CMakeGUI
CMakeGUI一开始使用的时候不是很习惯,特别是这个Configure,没弄懂是干嘛的,可能是读入源码目录下CMakeLists文件生成缓存先,读取所有的CMakeLists变量值,然后通过修改这些值就相当于CMake的时候加了各种 -D参数选项?(以前还一直以为源码目录是指解压出来以后包含各个cpp文件的那个文件夹,后来才发觉就直接是解压出来的那个文件夹>︿<)

首先,官网要求CMake版本至少3.10(挺高啊)。根据官方文档选择好源码目录(就是下载源码压缩包后解压出来的唯一的那个文件夹)选择好构建的目标存放目录(一般是直接在源码目录下新建一个名为‘build’的文件夹,选择它),点击Configure,弹出选择你所需要的构建套件,我这里是选了MinGW MakeFile,然后就会生成如上图的红色一片。

因为win10基本都是DirectX11了,所以OGRE渲染系统中,我没有勾选D3D9(勾上也不是不行),当然我也不需要移动版OpenGL(GLES2),由于我没有装Vulkan当然也就没有勾选这个(另外Tiny是什么鬼?之前真的没听过这个图形库)。WIN10自带DirectX SDK还有opengl32.lib,因此GL和D3D11我都勾上了。
在这里插入图片描述

没有imgui.cpp?

首先根据官方文档指示,我读到这段话:
运行CMake configure所有依赖将自动安装
在CMakeGUI中运行config将对所有依赖项自动安装,然而在上一步中,如果我们点击configure得到一片红之后再次configure确认值之后,点击generate,可能会报错(至少我报错了),一般来说控制台输出的红色信息都是Error导致无法正常进行下去的。

我这里说:没有找到imgui-1.85/imgui.cpp这个文件导致依赖库无法生成,我当时就一脸懵逼,这官网上的推荐依赖也没说有imgui这玩意啊???然后我在build目录下发现,它确实尝试生成了一个叫imgui-1.85的文件夹,然而里面只有一个imconfig.h头文件,确实没有任何cpp实现文件。
在这里插入图片描述
百度一番,发现这玩意还真不得了,Blender的界面不会是这个做的吧?它的全名叫Dear ImGui,看样子应该就是类似于不使用Qt Designer纯代码完成控件排版的窗口界面工具。这里是它的各个发行版本

下载1.85版本的imgui,解压,惊奇的发现这玩意根目录下没有CMakeLists。。。好家伙,这个库每次使用直接和自己的其他源代码放一起是吧。。。没关系,根目录下的文件除了imconfig.h全部一股脑塞到刚才的imgui-1.85文件夹中,再次在CMakeGUI中点击generate,这回OK了。generate完之后关掉CMakeGUI吧,生成好MakeFile文件之后CMakeGUI就完成任务了。

然后根据官网提示,在build目录下,开命令行(如果你是MSVC构建的话应该直接双击.sln文件,确保你已经装了VS2019或者VS其他版本)执行构建命令:
在这里插入图片描述
这里和我在Linux下熟悉的两连击不同cmake. . make,不过作用应该是相同的,都是构建目标文件。

D3D相关的undefined reference to

由于之前我自己又另外从微软官网下了一套DirectX SDK,是龙书DX12学习需要的,结果构建的时候自动检测到DX12这个非win10自带的DirectX了,构建到30%多时,总是说blablabla没有定义,当然没有定义呀,我自己下载的DX12,那个文件夹里面的库(library)中的函数和DX11对不上也很正常,所以遇到这种问题的小伙伴看看是不是自己额外下载了其他版本的DirectX SDK,稍微改动一下文件夹名称或者检查一下有没有指向其他DX SDK的环境变量Path?

结尾

最后官网还推荐将构建好的目标库给你打包到一个单独的文件夹方便后续急中地使用而不用指定到各个模块或者插件的构建目录去。
在这里插入图片描述
这么一说…原来之前Linux下的make install其实就是把构建好的库和include文件拷贝到/usr/include和/usr/lib吗?!知道详情的小伙伴可以留言呀。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:14:37  更:2022-01-30 19:15:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:45:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码