国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案

這篇具有很好參考價(jià)值的文章主要介紹了macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案

一、背景

本人在一次蘋果macOS系統(tǒng)更新(手賤點(diǎn)了一下AppStore里的全部更新)后,發(fā)現(xiàn)虛幻引擎UE4.27的C++項(xiàng)目無(wú)法編譯通過,報(bào)錯(cuò)信息為:

variable “LayerNames” set but not used [-Werror,-Wunused-but-set-variable]
                const TArray<FText>* LayerNames = &LayersExpression->GetLayerNames();

經(jīng)過翻查社區(qū)資料:

LayerNames error bricking my Mac projects - Platform & Builds - Unreal Engine Forums

外加本人親自驗(yàn)證,得出如下兩種適用于不同用戶的解決方案。

二、解決步驟

(〇)降級(jí)Xcode為13.2.x

費(fèi)力不討好,開倒車的方案在此不做介紹。

---------

(一)為特定項(xiàng)目添加編譯參數(shù)

該方案無(wú)需重新編譯引擎的UnrealBuildTool,可以快速解決問題,但缺點(diǎn)是每個(gè)項(xiàng)目,以及新建的項(xiàng)目都需要進(jìn)行設(shè)置。適合新手使用。

步驟:

1. 找到項(xiàng)目目錄下如下兩個(gè)文件:
? ? ? ? Source/項(xiàng)目名稱Editor.target.cs? ? ?--? ? ?對(duì)應(yīng)編輯器調(diào)試
????????Source/項(xiàng)目名稱.target.cs? ? --? ? ? 對(duì)應(yīng)無(wú)編輯器模式

2. 打開上述兩個(gè)文件,插入兩行代碼:

bOverrideBuildEnvironment = true;  // 打開覆蓋編譯器參數(shù)開關(guān)
AdditionalCompilerArguments = "-Wno-unused-but-set-variable";  // 增加編譯器參數(shù)-Wno-unused-but-set-variable以屏蔽該警告。

最終得到的結(jié)果類似于:

// Fill out your copyright notice in the Description page of Project Settings.

using UnrealBuildTool;
using System.Collections.Generic;

public class MyTarget : TargetRules
{
	public MyTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.V2;

		ExtraModuleNames.AddRange( new string[] { "My" } );

        // 插入如下兩行
        bOverrideBuildEnvironment = true;  // 打開覆蓋編譯器參數(shù)開關(guān)
        AdditionalCompilerArguments = "-Wno-unused-but-set-variable";  // 增加編譯器參數(shù)-Wno-unused-but-set-variable以屏蔽該警告。
	}
}

3. 保存,編譯,問題解決。

--------

(二)修改UnrealBuildTool配置文件并重新編譯引擎的UnrealBuildTool。

方案一的問題在于對(duì)于每個(gè)新建的項(xiàng)目,都需要重復(fù)進(jìn)行上述操作。對(duì)于其他平臺(tái)發(fā)來的項(xiàng)目,也需要額外進(jìn)行相關(guān)配置。

方案二采取直接修改引擎UnrealBuildTool的方式,可以在該機(jī)器上一勞永逸解決問題,缺點(diǎn)是相比之下更加麻煩,但是磨刀不誤砍柴嘛!

步驟:

1. 定位配置文件MacToolChain.cs??梢圆捎弥苯铀阉鞯姆绞蕉ㄎ?,或者如果在默認(rèn)安裝位置查找:

/Users/Shared/Epic Games/UE_4.27/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/MacToolChain.cs

2. 打開該文件,查找如下代碼:

Result += " -Wall -Werror";

3. 在上面代碼下面插入一行代碼:

Result += " -Wno-unused-but-set-variable";

最后的結(jié)果類似于:

// ...
if (Options.HasFlag(MacToolChainOptions.EnableUndefinedBehaviorSanitizer))
{
	Result += " -fsanitize=undefined";
}			

Result += " -Wall -Werror";
Result += " -Wno-unused-but-set-variable";  // 插入的代碼
Result += " -Wdelete-non-virtual-dtor";
			
// clang 12.00 has a new warning for copies in ranged loops. Instances have all been fixed up (2020/6/26) but
// are likely to be reintroduced due to no equivalent on other platforms at this time so disable the warning
if (GetClangVersion().Major >= 12)
{
	Result += " -Wno-range-loop-analysis ";
}			
// ...

4. 保存文件

5. 編譯前準(zhǔn)備

虛幻引擎默認(rèn)安裝完成后,會(huì)對(duì)UnrealBuildTool的相關(guān)執(zhí)行文件設(shè)置只讀權(quán)限,阻礙編譯過程,為此,我們需要首先備份并刪除如下兩個(gè)目錄(默認(rèn)位置):

/Users/Shared/Epic Games/UE_4.27/Engine/Source/Programs/UnrealBuildTool/obj/Development
/Users/Shared/Epic Games/UE_4.27/Engine/Source/Programs/DotNETCommon/DotNETUtilities/obj/Development

?找到這兩個(gè)目錄并改名為Development.bak之類的即可。

6. 重新編譯UnrealBuildTool

由于本人對(duì)C#項(xiàng)目在macOS下的編譯過程并不熟悉,這里直接使用了JetBrains的跨平臺(tái)C# IDE,這里也是非常推薦平時(shí)在虛幻引擎C++開發(fā)過程中使用的Rider來進(jìn)行編譯。

6.1 首先找到UnrealBuildTool的項(xiàng)目描述文件:UnrealBuildTool.csproj,默認(rèn)位于:

/Users/Shared/Epic Games/UE_4.27/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.csproj

6.2 使用Rider打開該文件:macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案

?6.3 點(diǎn)擊扳手按鈕開始編譯項(xiàng)目macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案

6.4 數(shù)十秒后提示編譯成功。如果報(bào)權(quán)限錯(cuò)誤,請(qǐng)回頭看 5-編譯前準(zhǔn)備。macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案

?完成!

三、原因推斷

推測(cè)是因?yàn)閄code13.3版本將

unused-but-set-variable

這個(gè)warnning選項(xiàng)列為-Wall -Werror的考慮范疇了,而此前版本未在該范疇。

該推測(cè)尚未在Xcode版本升級(jí)說明內(nèi)查到,歡迎大佬補(bǔ)充。

希望本帖對(duì)各位有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-400236.html

到了這里,關(guān)于macOS 更新Xcode,UE4編譯C++報(bào)錯(cuò)variable “LayerNames” set but not used -Wunused-but-set-variable解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • UE4_UE5源碼編譯及發(fā)布LinuxServer

    :::tip 情景內(nèi)容 需要開發(fā)專用服務(wù)器 需要將Server發(fā)到云端Linux系統(tǒng)主機(jī) 需要關(guān)閉SSH,服務(wù)一直啟用 需要使用UE4 ::: :::danger UE5.1補(bǔ)充內(nèi)容 準(zhǔn)備UE5.1 源碼 準(zhǔn)備VS2022 準(zhǔn)備Linux交叉編譯器-v20版本 ::: 1. Visual Studio 2019 1.1 下載 Visual Studio :::warning UE4 編譯源碼可以使用 VS2022 ,但就此博客

    2024年02月07日
    瀏覽(42)
  • UE4 Linux交叉編譯Clang下載

    必需軟件 操作系統(tǒng) Ubuntu 20.04 (5.0), Ubuntu 22.04 (5.0.2+) 編譯器 clang 13.0.1 IDE Visual Studio Code、CLion、QtCreator 推薦開發(fā)硬件 處理器 Intel四核處理器或AMD,2.5 GHz或更快 內(nèi)存 32 GB RAM 顯卡 NVIDIA GeForce 960 GTX或更高版本,帶最新NVIDIA二進(jìn)制驅(qū)動(dòng)程序 顯存RAM 8 GB或更高 RHI版本 Vulkan: ?AMD(

    2024年02月09日
    瀏覽(21)
  • UE4.27 編譯及打包HTML5相關(guān)資料

    UE4.27 編譯及打包HTML5相關(guān)資料

    https://docs.unrealengine.com/4.27/zh-CN/SharingAndReleasing/HTML5/GettingStarted/ UE4.27可以打包HTML5啦 https://github.com/Xi3Chen/UE4.27PackingH5DDoc https://blog.csdn.net/mrbaolong/article/details/131732174?spm=1001.2014.3001.5501

    2024年02月13日
    瀏覽(45)
  • xcode打包macos報(bào)錯(cuò):FlutterInputs.xcfilelist 和 FlutterOutputs.xcfilelist

    xcode打包macos報(bào)錯(cuò):FlutterInputs.xcfilelist 和 FlutterOutputs.xcfilelist

    xcode 打包macos的時(shí)候,報(bào)錯(cuò)如下: Unable to load contents of the file list: ‘macos/ephemeral/FlutterInputs.xcfilelist’ ‘macos/ephemeral/FlutterOutputs.xcfilelist’ 解決方案: 我的項(xiàng)目macos下沒有找到FlutterInputs.xcfilelist和FlutterOutputs.xcfilelist。 運(yùn)行 flutter build macos 后,就生成了上面兩個(gè)文件。 再次嘗

    2024年02月07日
    瀏覽(16)
  • 虛幻引擎UE4源碼編譯安裝(x86,arm64平臺(tái))

    虛幻引擎UE4源碼編譯安裝(x86,arm64平臺(tái))

    (1)關(guān)于運(yùn)行Setup.sh腳本,mono報(bào)錯(cuò),詳情截圖如下: 分析:不能執(zhí)行二進(jìn)制文件mono,根據(jù)錯(cuò)誤提示找到源碼中涉及到具體執(zhí)行語(yǔ)句為: “mono Engine/Binaries/DotNET/GitDependencies.exe $ARGS” ????????GitDependencies.exe可執(zhí)行文件的作用在線下載UE依賴庫(kù),而mono是跨平臺(tái).net運(yùn)行環(huán)境,

    2024年02月06日
    瀏覽(30)
  • UE4無(wú)法編譯項(xiàng)目。是否要在Visual Studio中打開

    一開始是沒裝Visual Studio。安裝完成后想創(chuàng)建C++項(xiàng)目出現(xiàn)如下報(bào)錯(cuò)。 無(wú)法編譯該項(xiàng)目。要在Visual Studio中打開它嗎? Running E:/Epic Games/UE_4.27/Engine/Binaries/DotNET/UnrealBuildTool.exe Development Win64 -Project=\\\"E:/Epic Games/UE_4.27/UnrealProjects/我的項(xiàng)目4/我的項(xiàng)目4.uproject\\\" -TargetType=Editor -Progress -NoE

    2024年02月03日
    瀏覽(19)
  • 【UE4 C++】03-新建UE C++工程,新建C++類

    【UE4 C++】03-新建UE C++工程,新建C++類

    ?UE版本:4.26 新建一個(gè)空白模板工程,選擇C++項(xiàng)目,選擇項(xiàng)目名和項(xiàng)目存儲(chǔ)位置,然后點(diǎn)擊創(chuàng)建項(xiàng)目。 新建C++類 ?選擇父類為Character ?命名,選擇公有,然后點(diǎn)擊創(chuàng)建類 ?等待編譯完成 ?此時(shí)在Visual Studio中可以看到我們剛才創(chuàng)建的類 ?在UEEditor中新建一個(gè)藍(lán)圖類,父類為“

    2024年02月16日
    瀏覽(16)
  • VS2022(V17.6.4)編譯UE4源碼配置文件(源碼包含自編譯CEF)

    VS2022(V17.6.4)編譯UE4源碼配置文件(源碼包含自編譯CEF)

    https://note.youdao.com/s/BwQ80dXk

    2024年02月08日
    瀏覽(22)
  • 【UE4】C++編程

    【UE4】C++編程

    .vs:VS的緩存文件夾; Binaries:存放UE的工程的可執(zhí)行文件,以及編譯的中間文件; Biuld:存放一些編輯器相關(guān)的日志; Config:存放游戲的默認(rèn)配置文件; Content:存放項(xiàng)目資產(chǎn); DerivedDataCache:主要存放DivX Descriptor File文件,應(yīng)該是UE為制作影視視頻準(zhǔn)備的; Plugins:存放項(xiàng)目

    2023年04月08日
    瀏覽(14)
  • epic商城下載,ue4報(bào)錯(cuò)處理

    epic商城下載,ue4報(bào)錯(cuò)處理

    ?如果你在epic商城下載游戲或者ue引擎出現(xiàn)了這樣的報(bào)錯(cuò),那么不必驚慌,這是epic官方的問題,最近訪問了別的社區(qū),有不少的伙伴出現(xiàn)了這樣的情況,這是由于epic官方更新了16.0出現(xiàn)的bug,下載老版本啟動(dòng)器即可解決,親測(cè)有效,鏈接放在下面(版本為14.2.1)https://pan.baid

    2024年02月19日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包