Unreal C++ VScode 配置
前言
这次尝试在 VScode 进行引擎编译。
网上一查发现,官方其实有做支持的,具体可以参考这篇文章 链接
这篇文章传播甚广,可以参照和这个方式配置 VScode 编译。
https://www.youtube.com/watch?v=fydvKedIxKk
https://github.com/boocs/ue4-tellisense-fixes
C++ 编译过程
深度参考学习这边文章 https://ericlemes.com/2018/11/21/compiling-c-code/
鉴于本人的 C++ 水平一般,建议阅读原文
编译步骤
C++ 编译可能会用到下面的文件。
- .cpp 文件编译成 .obj
 - 生成静态库 .lib
 - 生成动态库 .dll
 - 生成可执行文件 executable
 
VS 工具链
.sln 全称是 solution 解决方案,是 VS 的项目配置文件。 (整合了 .vcxproj .csproj)
他可以同时配置多个项目,最后通过 MSBuild 来构建
sln 包含了项目的各种头文件依赖,库引用等描述,执行顺序,通过这个 IDE 就知道怎么编译你的项目。
Xcode 的情况也是类似的。
其中比较特别的时 CMake ,通过 CMakeLists.txt 文件可以根据不同平台生成工程配置文件。
第一步 编译
输入:
- Defines
 - Include 文件夹路径Include directories
 - 预编译头文件 (如果有用到的话)
 - 源代码
 
输出:
- .obj 文件
 
MSBuild 使用 CL.exe 进行 C++ 编译。 可能的路径
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe
需要安装 VS 或者用 choco 来安装
编译的时候会根据 宏定义(比如
#ifdef)动态 改变编译行为
通过这个方式可以在不同的平台编译出不同的行为。
C++ 最终编译成对应平台的二进制,这个设计和 Java C# 都不同。
头文件最终会拼接到 C++ 里面进行编译,所以需要加上
#pragma once或者#if来避免多次定义。
预编译头则可以生成.pch文件实现头文件复用。
第二步 链接
输入:
- 一些源码生成 .obj 文件
 - 一些源码生成 .lib 文件
 - 第三方的 lib 和 obj 文件
 
输出:
- .dll 或者 .exe
 
这一步会将生成的中间文件合并成 dll 或者 exe
这个过程会完成很多优化的步骤,把不运行的部分清理掉。
最后会将一些平台的 lib 引入确保它在平台上可以运行,比如 wincrt (Windows C Runtime library) 等等
并且 lib 也有很多种类,有 release 版本和 debug 版本等等。
Unreal Build Tool
https://ericlemes.com/2018/11/23/understanding-unreal-build-tool/
CS 配置文件说明
https://www.bilibili.com/read/cv15297017/
Unreal使用自己开发的UnrealBuildTool来编译自己的 C++ 代码
与 💾CMake 类似的,UnrealBuildTool会引用你需要在相应的模块添加.build.cs...
剩余内容已隐藏