返回 我的 全国
学校 入驻 分享 拨打电话

学校新闻

从零开始手敲次世代游戏引擎(三)

浏览人次:58次 发布时间:2018-05-25

前一篇文章我们建立了windows上的clang工具链。

为了今后时刻可以检验我们的代码也可以在LINUX等环境下正常编译运行,我们现在开始建立LINUX下的编译环境。

LINUX可以选择任意一个发行版本。不同的发行版本在api接口方面是接近的,主要的不同是软件包的版本,以及包管理方式等。

ubuntu系列更新比较频繁,包体的版本较新。

centos系列是redhat系列的免费版,比较稳扎稳打,包体相对旧一些。

debian则更新非常的慢了。

bsd系列(这个严格来说不是LINUX,而是类UNIX系统) 中规中矩,严守unix规范,相对难用一些。

最重要的是,是否有最 大的两家GPU厂商的驱动支持。目前N卡的支持情况相对较好,A卡之前很差,现在有了OpenGPU这个项目,以及amdpro系列驱动,情况有所好转。

我所用的是带GPU的阿里云主机,有A卡版本和N卡版本。N卡版本比A卡版本贵不少,而且考虑到当代主机是以A卡为主,所以选用了A卡主机。

可能因为虚拟化的关系,阿里云上的A卡主机需要阿里云和AMD合作定制的特殊驱动。AMD官网上下载的驱动装上之后设备初始化会出错。而阿里云不提供这个特殊版驱动的单体,只提供预装了驱动的系统镜像。目前可选的只有CentOS和ubuntu。

需要注意的是由于amdpro驱动是内核模块插入方式,因此对内核的升级就比较敏感。亲测无论是选用CentOS还是ubuntu,如果升级最 新内核就会导致驱动失效,所以在新驱动出来之前需要锁定内核版本。

没有云服务器的,也可以在windows机器上安装一个vmware虚拟机,在那个里面装一个linux。免费的vmware workstation player就可以。注意目前对显卡支持较好的vmware是12以上的版本。早期版本只能支持到DX9级别,也就是固定管道渲染。其它虚拟机对显卡的支持更差,比如virtualbox。

Linux下构建toolchain的过程与windows类似(参考上一篇文章),可以使用yum或者apt安装发行版提供的编译好的包,也可以采用下载源码编译的方式。

作为演示,我这里采用另外一种方式,导入docker。docker是一种将特定应用环境容器化的方式,可以是实现应用的快速部署,以及和宿主环境的隔离。

docker入门教程参考:

http://www.docker.org.cn/book/docker.html

安装好docker之后,使用:

docker pull tim03/clang

就可以将我事先准备好的clang环境部署到本地。创建这个docker image的dockerfile则在下面这个地址,如果你想要知道它是怎么创建出来的话:

https://github.com/netwarm007/dockerfile-clang/blob/master/Dockerfile

当docker pull全部完成之后,我们进入到我们Hello Engine所在的目录(就是main.c所在目录),执行:

docker run -it --rm -v $(pwd):/usr/src tim03/clang

我们就会进入带有clang的docker容器,并且我们的源代码目录被映射到了/usr/src目录之下。执行下面的命令编译并观察执行结果:

bash-4.4# ls

LICENSE README.md a.out main.c

bash-4.4# clang main.c

main.c:3:1: warning: return type of 'main' is not 'int' [-Wmain-return-type]

void main() {

^ main.c:3:1: note: change return type to 'int'

void main() {

^~~~ int

1 warning generated.

bash-4.4# ls -l

total 24

-rw-rw-r-- 1 1000 1000 1067 Aug 18 20:12 LICENSE

-rw-rw-r-- 1 1000 1000 100 Aug 18 20:12 README.md

-rwxr-xr-x 1 root root 10368 Aug 18 22:02 a.out

-rw-rw-r-- 1 1000 1000 66 Aug 18 20:15 main.c

bash-4.4# ./a.out

Hello, Engine!

bash-4.4# exit

(-- EOF --)

请联系网站客服,了解详细的优惠课程信息~

  优质、便捷、省心