diff --git a/03-UnrealEngine/流程管理与部署/UE5 Ubantu & Docker 部署.md b/03-UnrealEngine/流程管理与部署/UE5 Ubantu & Docker 部署.md index 795cdec..9de07d0 100644 --- a/03-UnrealEngine/流程管理与部署/UE5 Ubantu & Docker 部署.md +++ b/03-UnrealEngine/流程管理与部署/UE5 Ubantu & Docker 部署.md @@ -2,7 +2,9 @@ title: UE5 Ubantu & Docker 部署 date: 2023-09-12 18:20:39 excerpt: -tags: +tags: + - Ubantu + - Docker rating: ⭐⭐ --- # 前言 @@ -67,5 +69,5 @@ adamrehn/ue4-runtime:22.04-vulkan-x11 - 编译项目:/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/XXXX.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE - 启动项目:/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -logs "/project/XXXX.uproject" -为了防止生成解决方案失败,可以把项目目录与UE目录设置权限。 -PS.实际是因为Ubantu系统版本与容器系统并不相同,所以需要重新编译一下,才能运行项目。 \ No newline at end of file +**为了防止生成解决方案失败,可以把项目目录与UE目录设置权限。** +PS.实际是因为Ubantu系统版本可能与容器系统并不相同,所以需要重新编译一下,才能运行项目。 \ No newline at end of file diff --git a/03-UnrealEngine/流程管理与部署/Ubantu平台Puerts的编译.md b/03-UnrealEngine/流程管理与部署/Ubantu平台Puerts的编译.md deleted file mode 100644 index bcc743f..0000000 --- a/03-UnrealEngine/流程管理与部署/Ubantu平台Puerts的编译.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: Untitled -date: 2023-09-15 15:50:48 -excerpt: -tags: -rating: ⭐ ---- -# 前言 -本人使用的版本是[Unreal_v1.0.4](https://github.com/Tencent/puerts/releases/tag/Unreal_v1.0.4)的Nodejs版本 - -# Linux上的编译问题解决 -1. FileSystemOperation.cpp - 1. `#include "HAL/PlatformFilemanager.h" => #include "HAL/PlatformFileManager.h"` -2. Compile PesapiFrameworkLoader.mm error: Objective-C was disabled in PCH file but is currently enabled - 1. 将PesapiFrameworkLoader.mm的后缀名改成PesapiFrameworkLoader.cpp - -### UE-dev 5.1 -sudo docker run --gpus=all --rm -ti -v "/media/user//home/user/Projects/AIMotionRender:/project" ghcr.io/epicgames/unreal-engine:dev-5.1.1 - - - -#### 编译Puert -sudo docker run --gpus=all --rm -e DISPLAY -ti \ --v /tmp/.X11-unix:/tmp/.X11-unix:rw \ --v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \ --v /home/user/Projects/AIMotionRender:/project \ --v /home/user/node:/home/user/node \ --v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \ -adamrehn/ue4-runtime:22.04-vulkan-x11 - -sudo apt-get install clang -sudo apt-get install libc++-dev -sudo apt-get install libc++abi-dev -sudo apt-get install make -curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash - -sudo apt-get install -y nodejs -cd /home/user/Projects/backend-nodejs/node-script -npm install -s commander -sudo apt-get install git -/home/user/Projects/backend-nodejs/linux.sh - - -root 用户 -sudo docker run -u 0 --gpus=all --rm -e DISPLAY -ti \ --v /tmp/.X11-unix:/tmp/.X11-unix:rw \ --v /home/user/Linux_Unreal_Engine_5.1.1:/home/ue4/UnrealEngine \ --v /home/user/Projects/AIMotionRender:/project \ --v /home/user/node:/home/user/node \ --v /home/user/Projects/backend-nodejs:/home/user/Projects/backend-nodejs \ -adamrehn/ue4-runtime:22.04-vulkan-x11 -#### 编译v8 -/home/user/Projects/backend-nodejs/linux.sh - - -### Startup -cd /home/ue4/UnrealEngine/Engine/Binaries/Linux \ -./UnrealEditor -log "/project/AIMotionRender.uproject" - -/home/ue4/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -log "/project/AIMotionRender.uproject" - -### Compiler -/home/ue4/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh Development Linux -Project="/project/AIMotionRender.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE - - - -## UE Docker diff --git a/03-UnrealEngine/流程管理与部署/Ubantu平台Puerts编译问题解决.md b/03-UnrealEngine/流程管理与部署/Ubantu平台Puerts编译问题解决.md new file mode 100644 index 0000000..cb38da6 --- /dev/null +++ b/03-UnrealEngine/流程管理与部署/Ubantu平台Puerts编译问题解决.md @@ -0,0 +1,50 @@ +--- +title: Ubantu平台Puerts编译问题解决 +date: 2023-09-15 15:50:48 +excerpt: +tags: + - Ubantu + - Puerts + - Docker +rating: ⭐⭐⭐ +--- +# 前言 +本人使用的版本是[Unreal_v1.0.5](https://github.com/Tencent/puerts/releases/tag/Unreal_v1.0.5)的Nodejs版本,首先使用Ubantu23.04进行测试,之后换成了Ubantu22.04。Puerts在Ubantu(Linux)上部署的坑也比较多,遂写此文。 + +# Linux上的编译问题解决 +1. FileSystemOperation.cpp + 1. `#include "HAL/PlatformFilemanager.h" => #include "HAL/PlatformFileManager.h"` +2. Compile PesapiFrameworkLoader.mm error: Objective-C was disabled in PCH file but is currently enabled + 1. 将PesapiFrameworkLoader.mm的后缀名改成PesapiFrameworkLoader.cpp + +## V8环境库问题 +报错内容:**ld.lld: error: unable to find library -lnode** +在询问作者后得知是V8环境库的编译环境与系统环境不符所致,需要自己编译库来解决。 +>https://github.com/Tencent/puerts/issues/1521 + +大致方法就是下载并且运行编译脚本自己编译库。该库2月16日Released的版本在Ubantu22.04上测试通过,所以建议大家使用Ubantu22.04。其他版本需要自己编译。 +>https://github.com/puerts/backend-nodejs + +### 编译所需要的库 +```bash +sudo apt-get install clang +sudo apt-get install libc++-dev +sudo apt-get install libc++abi-dev +curl -sL https://deb.nodesource.com/setup_16.x | sudo -e bash - +sudo apt-get install -y nodejs +cd /home/user/Projects/backend-nodejs/node-script +npm install -s commander +# 部分纯净系统可能需要安装这2个东西 +sudo apt-get install make +sudo apt-get install git +``` + +因为该脚本是为Gihub Action编写的,其他还支持Ubuntu 20.04镜像,可以参考 https://github.com/actions/runner-images/ 。如果你是其他版本的系统就需要自己clone该仓库并且修改脚本进行编译。编译完文件会在/home/user/node/out/Release + +调用方式: +```bash +./linux.sh 工作目录路径 16.x +``` +这里我推荐修改脚本,直接手动指定2个参数,并且删除会报错地方,之后就可以编译了。编译完替换**Plugins\Puerts\ThirdParty\nodejs_16\lib\Linux**中文件即可。 + +# UE-Runtime容器部署问题