VSCode怎么开发Unreal Engine项目 - C++智能提示与代码补全加速配置

小芳君_1738

小芳君_1738

2026-04-01

974人浏览

原创

先确保生成compilecommands.json:运行ubt命令生成,检查路径是否为intermediate/build/compilecommands.json;再配置clangd插件并指定compile-commands-dir;最后添加generated.h所在inc目录到includepath以支持ufunction识别。

vscode怎么开发unreal engine项目 - c++智能提示与代码补全加速配置

Unreal Engine 项目在 VSCode 中没有 C++ 智能提示?先检查 CompileCommands.json 是否生成

VSCode 本身不理解 Unreal 的构建逻辑,C++ 插件(如 C/C++ 官方插件或 clangd)必须依赖准确的编译数据库才能提供函数跳转、参数提示和宏展开。Unreal 默认不生成 CompileCommands.json,这是 90% 用户没补全的根本原因。

  • 确保用命令行生成:在项目根目录下运行 UnrealBuildTool.exe -projectfiles -project="YourProject.uproject" -game -engine(Windows)或对应平台的 UBT 调用
  • 生成后检查是否在 Intermediate/Build/<code> 目录下出现 <code>CompileCommands.json(注意:不是 CompileCommands.txt)
  • 如果路径含空格或中文,clangd 可能静默失败——建议项目路径纯英文、无空格
  • C/C++ 插件需在 c_cpp_properties.json 中显式指定 "compileCommands": "${workspaceFolder}/Intermediate/Build/CompileCommands.json"

clangd 还是 Microsoft C/C++ 插件?选 clangd 更稳

Unreal 大量使用模板、宏和自定义属性(UCLASS、UPROPERTY),Microsoft 的 cpptools 对非标准语法支持弱,常卡在 UObject 继承链解析上;clangd 基于真实 Clang AST,兼容性更好,尤其配合 -Xclang -fms-extensions 等 UE 构建参数时更准。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 安装 clangd 插件(官方 LLVM 发布版),禁用 cpptools 避免冲突
  • 在 settings.json 中配置 "clangd.arguments",至少包含:["--compile-commands-dir=Intermediate/Build", "--background-index"]
  • 若提示 “no compile commands found”,说明 clangd 没定位到 CompileCommands.json —— 用 clangd --check=<path></path> 手动验证路径有效性
  • 不要开启 "clangd.fallbackFlags" 自动推导,UE 的 include 路径太深,容易漏掉 Engine/Source/Runtime/Core/Public 等关键头文件

为什么 UFUNCTION 或 UPROPERTY 成员不被识别?别指望自动解析宏

clangd 和 cpptools 都不会执行 UE 的 UHT(Unreal Header Tool)预处理,所以 UFUNCTION(BlueprintCallable) 这类宏包裹的函数,在源码里就是“不存在”的——智能提示只认 UHT 输出后的 *.generated.h 文件,但这些文件默认不在 VSCode 工作区中。

  • 手动把 Intermediate/Build/<code> 下对应 Target 的 <code>Inc/YourModule/ 目录加入 "includePath"(clangd 不认这个,但 cpptools 需要)
  • 更可靠的做法:在 .vscode/c_cpp_properties.json 的 includePath 中添加 "${workspaceFolder}/Intermediate/Build/*/*/Inc/**"(注意通配符层级)
  • 即便如此,BlueprintCallable 函数仍可能不显示蓝图侧签名——这是正常现象,UHT 生成逻辑不在编辑器感知范围内
  • 想查某个 UFUNCTION 实际声明?直接跳转到对应 *.generated.h,那里有 UHT 展开后的完整 C++ 签名

改完 C++ 代码后提示没更新?重启 clangd 索引比重启 VSCode 有效

clangd 启动后会缓存 AST,但 UE 每次重新生成 CompileCommands.json(比如加了新模块、改了 Build.cs)时,它不会自动 reload,导致提示停留在旧状态,甚至报错“symbol not found”。

  • 快捷键 Ctrl+Shift+P → 输入 clangd: Restart language server 强制刷新
  • 如果频繁增删模块,建议在 tasks.json 中加一个 task,自动运行 UBT 生成 + clangd 重启
  • 留意右下角 clangd 状态栏图标:灰色表示未就绪,黄色表示索引中,绿色才是可用;点它可看当前加载的 CompileCommands.json 路径
  • 不要依赖 “自动重载” 选项——UE 的构建产物路径动态性强,clangd 的文件监听容易漏掉 Intermediate 下的变更
实际最耗时间的不是配置,而是确认 CompileCommands.json 里每条命令的 -I 和 -D 是否真包含了你正在写的那个类所需的全部宏和头文件路径。UE 的模块依赖链一深,少一个 -I,整个类就变灰。

C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2035

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2962

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1016

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3359

7

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3119

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2678

6

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

2023.08.01

1448

3

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2459

5

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.08

3250

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程