1.UE4学习笔记(1):UE源码编译+安卓打包
2.C语言项目:贪吃蛇游戏(双人模式)!源码笔记详细思路+源码分享
3.OsgEarth学习笔记-新01,源码笔记从源码编译osgEarth
4.C语言零基础项目:连连看小游戏!源码笔记详细思路+源码分享
5.[机器学习]📒200页手推公式: 《统计学习方法-李航: 笔记-从原理到实现》
6.CMake学习笔记入门啦!!!
UE4学习笔记(1):UE源码编译+安卓打包
注:该笔记以UE4..2在windows平台为例,源码笔记vs版本为
1.关联github和Epic账户
要在github上获取UE4源码需要先关联账户,源码笔记否则找不到源码,源码笔记酒吧官网源码网页
按照官网提供流程即可完成 GitHub上的源码笔记虚幻引擎 - Unreal Engine
记得确认邮件,否则还是源码笔记(当初就是忘记了,卡了好一会儿)
2.下载UE4源码
在 Releases · EpicGames/UnrealEngine (github.com)中选择自己需要的源码笔记版本(我使用的是4..2),这步很简单,源码笔记但需要注意的源码笔记是还需要将Commit.gitdeps.xml文件也一并下载,用于替换同名文件(有些版本则没有这样的源码笔记文件),不替换的源码笔记话后续会报错(之后步骤中会提到)
解压后目录如下:
3.执行bat文件
(1)点击运行setup.bat,没有替换Commit.gitdeps.xml文件可能会出现如下问题:
(2)点击运行GenerateProjectFiles.bat,源码笔记此过程可能会出现如下问题:
未找到框架 .NETFramework Version=v4.6.2
只需要在VS Installer中选中安装就行:
完成后会生成UE4.sln文件
4.生成
VS打开UE4.sln,源码笔记开始生成:
但是生成过程中我出现了这样的问题:
UE4 fatal error C: 编译器限制: 达到内部堆限制
error C: 超过了 PCH 的虚拟内存范围问题解决
我出现这样问题的原因是我的C盘空间不够大(分区的时候给的比较少),托管系统设置在C盘,导致无法分配足够的虚拟内存,设置为空间足够的盘即可。
步骤:电脑->属性->高级系统设置->高级->性能设置->高级->更改
OK,成功编译完成
5.安卓打包
该过程有官方文档,并且比较繁琐,直接给出链接:
设置虚幻的Android SDK和NDK | 虚幻引擎文档 (unrealengine.com)
UE部署到Android以及杂症的解决 - 知乎 (zhihu.com)
我就提一下自己遇到的问题,在UE4中进行安卓打包的时候遇到了这样的问题:
原因在于SetupAndroid.bat中,SDK Platform的版本选择是,而在UE项目设置->平台 - Android SDK中的app源码贴牌SDK API Levle默认选择latest。但是我安装AS的时候默认给我安装了最新的Android API (此时latest指向的是版本),导致冲突。解决方法是UE项目设置中手动设置指定版本,或者在AS中卸载高于版本的Android API。
OK,打包成功!!!
6.打开游戏
但是,是的,还有但是(都最后一步了,还有问题OVO!!!),在手机上下载安装,打开后是这样的:
原来是因为打包除了生成apk文件还生成了obb,至于Google Play Store Key应该就是一个密钥了。
解决方法是在UE项目设置->Android中勾选“将游戏数据打包至.apk中”,我们可以看到对这个勾选项的解释:
行,勾选后重新打包,成功运行:
C语言项目:贪吃蛇游戏(双人模式)!详细思路+源码分享
提升编程技能,每日一练C语言小项目。贪吃蛇游戏,2022短信源码玩法简单,上下左右控制蛇行,寻找食物。每次进食增加积分,蛇身增长,难度加大,忌碰墙、自咬。今日挑战:双人模式贪吃蛇。游戏双方分别控制不同颜色蛇,通过命令队列,实现更流畅操作。本项目适用编译环境为Visual Studio /,配合EasyX插件。代码设计关键点:
1. 定义游戏变量及元素。
2. 游戏元素绘制。
3. 初始化游戏,地图及蛇初始化。
4. 用户指令获取。
5. 用户指令处理。
6. 判断游戏状态与结束处理。
7. 编写入口函数。
尝试实践,分享代码经验,交流学习。彩票接口源码查询C语言学习资源分享:
从基础教程到项目实战,全面覆盖。包括学习视频、项目案例、源码、项目笔记,助你高效学习。加入社群,畅享交流,解决编程难题。C语言/C++/数据结构与算法编程学习
OsgEarth学习笔记-新,从源码编译osgEarth
从源码编译 osgEarth 的学习笔记
学习路径及环境准备
学习路径选定为 osgEarth,以期找到项目工作的突破点。本机环境为 Windows bit,使用 VS 社区版进行开发。由于涉及到OSG第三方依赖,需安装 VC x 的编译环境。后续的预编译或源码编译操作均基于 VC 版本。
环境搭建步骤
首先,安装 VC 编译环境,并下载 Cmake 工具。
其次,从 GitHub 下载 osgEarth 源代码(当前为 3.4 版本)及 OpenSceneGraph(当前为 3.6.5 版本),确保遵循官网对依赖项的要求:OSG 3.6 及以上、GDAL 2.4 及以上、跑腿系统源码查询CURL、GEOS 3.2 及以上(可选)。对于 GDAL,考虑到版本兼容性,选择 2.4 版本以避免后续问题。
独立下载 GDAL 及其依赖(CURL 和 GEOS)至 gdal 目录下,并确保正确安装。
对于 Libzip 和 zlib,下载较新版本的源码并编译为库。使用第三方库解决方案以解决与 VS+Cmake 的兼容问题。
构建流程
针对 OpenSceneGraph,创建 build 目录并在 Cmake 中指定源码路径与编译选项。关键配置包括 OSG_GL_CONTEXT_VERSION 3.3,以适应 OpenGL 版本要求。
在 osgEarth 的 build 目录下,通过 Cmake-Gui 配置源码路径与关键选项(如 Curl、openthreads)。注意配置 GDAL、osg,并确保 Zip 插件使用较新版的 libzip 库。手动下载 Lerc 源码并解压至指定目录。Sqlite3 与 gdal 包共用。生成、配置并编译项目。
验证编译结果
将编译生成的 dll 等文件放置在指定目录下。通过命令行进入 bin 目录,执行 osgearth_viewer.exe 命令,加载测试文件,确认 osgEarth 正常运行。
总结
从源码编译 osgEarth 的全过程耗时约 8 小时,虽有挑战,但最终成功验证了编译结果。此学习笔记旨在记录整个编译流程,提供参考与后续优化建议。祝大家在开发道路上越走越远。
C语言零基础项目:连连看小游戏!详细思路+源码分享
每天一个C语言小项目,提升你的编程能力!
连连看小游戏是一款以连连看为主要元素的Flash游戏,操作方便,绿色,无需安装,简单容易上手。它的速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强了游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。
操作方法为鼠标操作,将图案相同的两张用三根以内的直线连在一起就可以消除。游戏目标是在有限的时间里,将全部消除,步入下一关卡,最终获得胜利。
本项目编译环境为Visual Studio /,使用了EasyX插件。代码展示了游戏的实现过程。
分享给大家的代码和资源,包括从最零基础开始的教程到C语言C++项目案例,帮助大家在学习C语言的道路上披荆斩棘。此外,整理分享了学习视频、源码、项目实战视频、项目笔记以及基础入门教程,最重要的是可以在群里面交流提问编程问题。
欢迎转行和学习编程的伙伴,利用这些资源学习成长比自己琢磨更快。
[机器学习]📒页手推公式: 《统计学习方法-李航: 笔记-从原理到实现》
这是一份回顾性的机器学习笔记,记录了我早期对《统计学习方法-李航》的学习历程。这份页的笔记详尽地阐述了手推公式,从原理到实现,特别强调了R语言的应用。它不仅是我学习机器学习的起点,也是我对深度学习理解的起点,那时的热情和投入程度令人印象深刻。我曾为深入理解SVM,不惜购买专门的数学书籍,花了半个月时间研读,然后亲手用R实现。即使现在的工作繁忙,那段专注的时光也显得格外珍贵。
这份笔记起初是在人大经济论坛分享,初衷是希望与统计系的同学交流学习心得。虽然论坛币的积累让我有些惊喜,但似乎并未得到过多的利用。年毕业后,我将笔记上传至GitHub,期待有志者能从中受益。五年过去了,虽然仅有K的关注者,但这份开放源码的初衷从未改变,star的支持是我最大的动力。如果你对机器学习感兴趣,不妨点击链接探索:
CMake学习笔记入门啦!!!
本文记录了如何利用CMake将工程中的多个可执行文件输出到同一指定目录,并通过命令行方式编译不同版本(Release /Debug)的.exe文件。作为一个入门教程,旨在帮助读者对CMake有更清晰的认识。接下来,我们直接介绍实践步骤。
文件树结构:
查看文件夹结构命令:
查看文件夹及文件树结构命令:
当前练习工程的文件夹结构如下:根目录下存在一个CMakeLists.txt文件,每个case文件夹内各自有一个CMakeLists.txt。
根目录的CMakeLists.txt变化:
为了便于运行生成的.exe文件,将mpi的可执行文件也统一放置到指定的输出目录下,并根据CMAKE_BUILD_TYPE(通过构建工程时命令行直接指定,非全局CMakeLists.txt中给定)区分Debug和Release版本。
case2目录的CMakeLists.txt变化:
每个case文件夹代表一种关于mpi功能的练习,内部包含源码文件。以case2文件夹为例,其CMakeLists.txt代码如下:使用变量CMAKE_RUNTIME_OUTPUT_DIRECTORY指定输出目录,便于管理。
命令行构建+生成项目:
使用命令行构建项目,原因在于个人偏好及在Linux系统上进行编码和实验。在构建项目时,创建了一个build目录,并在其中执行cmake命令以生成makefiles,随后在build目录下构建项目。
构建项目:
在build目录下构建项目,通常会创建一个与工程根目录同一级别的解决方案文件。此步骤涉及到指定构建器,如Visual Studio 或MinGW Makefiles,并通过变量CMAKE_BUILD_TYPE指定构建模式。
生成项目可执行文件:
在构建项目文件后,执行build命令以生成可执行文件。通过配置Debug或Release版本,分别生成对应模式的.exe文件。此外,生成的文件中可能包含子项目和缓存信息,以及额外的pdb文件,可能与命令行调试相关。
总结:
本文提供了使用CMake的基本入门指南,涵盖了文件结构管理、全局CMakeLists.txt与子目录CMakeLists.txt的配置,以及命令行构建和生成不同版本可执行文件的步骤。通过实践这些步骤,读者可以开始使用CMake进行更深入的项目构建工作。对于大型工程,需要更深入的CMake知识来应对复杂的项目结构和依赖关系。学习CMake是一个逐步深入的过程,持续实践和探索是关键。欢迎分享您的学习经验,共同进步!