You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UE5.4插件集成CEF遇macOS链接错误:ld: framework 'cef' not found

解决UE5.4 M1 Mac下CEF插件链接器找不到cef.framework的问题

我在M1 MacBook Pro 2020上开发UE5.4.4的CEF集成插件时,遇到了链接器错误:

ld: framework 'cef' not found
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

已确认cef.framework放在插件ThirdParty目录,且MyPlugin.Build.cs配置了路径,但问题依旧。以下是实测有效的解决步骤:


1. 检查Build.cs框架配置是否符合UE5.4规范

UE5.4对Mac框架的引用逻辑有调整,确保路径拼接正确,且使用PublicAdditionalFrameworks添加框架:

using System.IO;
using UnrealBuildTool;

public class MyPlugin : ModuleRules
{
    public MyPlugin(ReadOnlyTargetRules Target) : base(Target)
    {
        // 其他基础配置...

        if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            string CEFBasePath = Path.Combine(ModuleDirectory, "../ThirdParty/CEF/Mac");
            string CEFFrameworkPath = Path.Combine(CEFBasePath, "cef.framework");
            
            // 添加CEF框架及依赖的系统框架
            PublicAdditionalFrameworks.Add(new Framework(
                "cef", 
                CEFFrameworkPath,
                new string[] { "Cocoa", "QuartzCore", "CoreGraphics", "Security" }
            ));
            
            // 添加框架搜索路径
            PublicFrameworkPaths.Add(CEFBasePath);
        }
    }
}

注意:路径必须是相对于插件模块目录的正确相对路径,避免硬编码绝对路径。

2. 验证cef.framework的架构匹配M1芯片

M1是arm64架构,若CEF编译时未指定该架构,会导致链接器无法识别。用以下命令检查架构:

lipo -info /你的插件路径/ThirdParty/CEF/Mac/cef.framework/cef

如果输出为Non-fat file: ... is architecture: x86_64,说明需要重新编译CEF:
运行automate-git.py时添加--arm64参数:

python automate-git.py --download-dir=~/cef_source --branch=6668 --arm64 --build

编译完成后替换ThirdParty目录中的cef.framework。

3. 修复Xcode项目的框架引用问题

UE生成的Xcode项目可能未正确同步Build.cs配置,手动检查调整:

  • 打开UE项目生成的Xcode工程,找到插件的Target(通常在Plugins/你的插件名分组下)
  • 进入Build Phases -> Link Binary With Libraries,确认是否有cef.framework,若没有则点击+手动添加
  • 进入Build Settings -> Framework Search Paths,添加cef.framework所在目录的绝对路径,勾选Recursive

4. 清理构建缓存

缓存可能导致旧配置残留,执行以下操作:

  • 删除UE项目根目录的Intermediate和Build文件夹
  • 清理Xcode派生数据:打开Xcode -> Settings -> Locations -> 点击Derived Data旁的箭头,删除对应项目的文件夹
  • 重启UE编辑器,选择File -> Refresh Xcode Project,然后重新构建

5. 确认UE项目的Mac架构设置

确保UE项目架构与CEF一致:

  • 打开UE编辑器,进入Edit -> Project Settings -> Platforms -> Mac
  • 将Architecture设置为ARM64,关闭Use Rosetta for x86_64 Builds

内容的提问来源于stack exchange,提问作者project akame

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:25:14