spark粒子系统编译 visual studio 2017

准备工作

Visual Studio 2017 安装

作为Windows开发程序员,vs安装过程跳过,有需要自行百度搜索

CMake 安装

简单安装过程为 网上下载cmake 之后进行安装,安装步骤基本位下一步……,结束,过程比较简单并且也非本教程的重点,就此跳过。如果在安装过程中有碰到问题,可以在下方留言,由于本人时间不充足所以不能保证及时回复,在此说声抱歉。

Spark源码下载

下载地址:源码下载地址;等我有时间上传之后再更新我自己的仓库地址。

CMake工程构建

源码下载过程省略,自行下载。下载完成之后,打开Cmake gui ,把cmakelists.txt 拖拽入cmakegui 中,如下图所示
在这里插入图片描述

32位程序编译

如果需要把生成目录修改成自定义的目录,则将目录地址填写到“where to build binaries:”后面的文本框即可(建议不要把生成目录设置成当前目录,以便后续直接删除生成目录,例如本人一般在默认的目录上填写/build)。点击configure, 如果第一次生成,则会弹出对应的配置工程框,如果编译的是32位比较简单,因为spark 就是目标为32位,也不是当前文章的需要重点介绍的。等待片刻,configure完成,点击“Generate” 生成,同样是生成完成即可。生成成功可以指点点击"Open Project"按钮,或者到刚才指定目录打开对应的VS .sln文件直接编译。32位我编译直接就编译成功了。

64位程序编译

相同于32位的配置,只是在点击"Configure"弹出点击配置选项,选择64位程序即可。其余的和32位的编译类似,不在赘述。

编译错误

32位编译基本上不会有问题,因为作者本身就是使用32位程序,主要解决64位编译的错误

错误1

error C2440: “specialization”: 无法从“overloaded-function”转换为“unsigned int (__cdecl SPK::Group:: * )(void) const”
错误位置:Core/SPK_Group.h(392)
错误原因:由于64位下,size_t 表示的类型是unsigned long long, 32位表示的类型位unsigned int,导致了在64位下spk_attribute 代表的类型和和实际类型不一致
修改方案之一:spk_attribute(unsigned int, capacity, reallocate, getCapacity); 中的“reallocate” 函数参数修改城unsigned int 和 “getCapacity” 函数返回值设置成unsigned int

错误2

这个错误比较明显,编译器给出提示“/bigobj ”
解决方案之一:在项目属性中->c+±>命令行 输入/bigobj 即可

错误3

put 函数为重载
原因和错误1 差不多,不在赘述
解决方案之一,添加一个put 函数如下:
void put(size_t i) { put32(reinterpret_cast<int32>(&i)); }

解决这个三个错误在我的机器上编译通过,如果还有其他问题碰到了,再进行补充。

ps:有大神说这个库有个设计问题,本人只是使用,并没有深究具体什么我也不清楚,如果图省事,可以直接使用大神在github上 的版本,大神修改的方案和我的方案有一些出入,具体看怎么方便怎么来吧!大神版本

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值