【VSCode】VSCode或者Trae的扩展文件夹以及用户设置文件夹的路径更改到指定位置

一、简介

安装VSCode或者Trae后,他们的插件文件夹以及用户设置文件夹的路径默认是在C盘的,注意这里是用户安装版本的vscode版本。Download Visual Studio Code - Mac, Linux, Windows

以及这里的trae是国际版本(trae.ai),下载地址是TRAE - Collaborate with Intelligence,因为国际版可使用国外AI模型。

二、VSCode

windows上需要是第一次安装VSCode才能更改好VSCode本体程序的位置改到D盘

2.1 原始路径

cpp 复制代码
extensions: C:\Users\用户名\.vscode\extensions

user-data: C:\Users\用户名\AppData\Roaming\Code

如果没有更改VSCode本体位置: C:\Users\用户名\AppData\Local\Programs\Microsoft VS Code

2.2 选择使用创建软连接的方式,使用mklink方式修改,而修改快捷方式的目标会带来某些问题(必须从快捷方式启动,不推荐)

%username%会自动解析为系统当前用户名

bash 复制代码
mklink /D "C:\Users\%username%\.vscode" "D:\VS_Code\.vscode"
或者
mklink /D "C:\Users\%username%\.vscode\extensions" "D:\VS_Code\extensions"



mklink /D "C:\Users\%username%\AppData\Roaming\Code" "D:\VS_Code\AppData\Roaming\Code"



mklink /D "C:\Users\%username%\AppData\Local\Programs\Microsoft VS Code" "D:\VS_Code\VSCode\Microsoft VS Code"

2.3 先剪切文件夹到自己制定的位置,再以管理员使用cmd窗口,执行上三条语句,如果更改过VSCode程序本体位置就不用执行第三条

2.4 成功后可查看软连接符号,如果打开VSCode没有检测到插件就需要重启VSCode几次或者重启电脑一次

2.5 删除符号链接,不建议使用**rmdir /s 命令** (/s 会强制删除源文件)

2.5.1 方法 1:图形化操作(最安全,推荐新手)

  1. 打开文件资源管理器,分别找到这三个路径:
    • C:\Users\你的用户名\.vscode
    • C:\Users\你的用户名\AppData\Local\Programs\Microsoft VS Code
    • C:\Users\你的用户名\AppData\Roaming\Code
  2. 直接右键符号链接 → 删除(或按 Delete 键)
  3. 系统只会删除软链接本身D 盘的真实文件完全不受影响

2.5.2 以管理员使用cmd窗口执行

删除 .vscode 软链接

rmdir "C:\Users\%username%\.vscode"

删除 VS Code 程序目录软链接

rmdir "C:\Users\%username%\AppData\Local\Programs\Microsoft VS Code"

删除 Code 配置目录软链接

rmdir "C:\Users\%username%\AppData\Roaming\Code"

2.6 验证成功

三、Trae

与VSCode差不多

3.1 原始路径

cpp 复制代码
插件:C:\Users\%username%\.trae\extensions

配置缓存:C:\Users\%username%\AppData\Roaming\Trae

主程序:C:\Users\%username%\AppData\Local\Programs\Trae

3.2 剪切文件夹到指定路径,再以管理员身份运行CMD执行

cpp 复制代码
mklink /D "C:\Users\%username%\.trae" "D:\SoftwaresHub\Trae_IDE\.trae"

mklink /D "C:\Users\%username%\AppData\Roaming\Trae" "D:\SoftwaresHub\Trae_IDE\AppData\Roaming\Trae"

3.3 验证成功

不能安装MS的C/C++插件

四、对于微软的C/C++插件,非微软承认的编辑器不能下载其插件,所以有必要说一下Trae如何配置clangd,配置好后就可以使用跳转函数、代码提示、代码补全等功能

4.1 简介

下载:

Releases · llvm/llvm-project

clangd简单来说就是一个语言服务器程序,在这个服务器上安装配置编译器工具链(含 clang 解析器)这种编译器和解析器,即可解析项目代码工程

4.2 安装LLVM

环境变量会添加D:\LLVM\bin

4.3 在Trae安装插件

4.3.1 clangd插件里配置LLVM的clangd路径

不要自动安装,因为我们下载了LLVM整个工具链,LLVM里面已经带了clangd语言服务器程序

点击扩展设置

输入

@ext:llvm-vs-code-extensions.vscode-clangd path

4.3.2 配置LLVM的clangd的一些功能

Windows :路径:%LocalAppData%\clangd\config.yaml(可在文件资源管理器中直接输入 %LocalAppData%\clangd,新建 config.yaml

cpp 复制代码
# This file was generated by Qt Creator and will be overwritten unless you remove this line.
Hover:
  ShowAKA: Yes
Diagnostics:
  UnusedIncludes: Strict

# 参考:https://clangd.llvm.org/config
# 补全配置:参数列表显示分隔符
Completion:
  ArgumentLists: Delimiters
 
# 嵌入式提示:显示代码块结束、默认参数等
InlayHints:
  BlockEnd: true        # 显示代码块结束标记(如 `}` 旁标注函数名)
  DefaultArguments: true # 显示函数默认参数提示
  TypeNameLimit: 0      # 类型名提示无长度限制
 
# 全局编译选项(所有项目生效)
CompileFlags:
  Add: [-Wall]  # 添加 `-Wall` 开启所有警告

4.3.3 按需添加clangd的功能

cpp 复制代码
{
    "clangd.arguments": [
        // 后台索引(提升大型项目的响应速度)
        "--background-index",
        "--background-index-priority=low",  // 后台索引优先级设为低,不影响编辑
        
        // 启用代码检查(基于clang-tidy,支持代码规范检查)
        "--clang-tidy",
        
        // 补全样式:detailed显示更详细的补全信息(如参数类型)
        "--completion-style=detailed",
        
        // 代码风格 fallback:当项目无明确风格时,默认使用Google风格
        "--fallback-style=Google",
        
        // 关闭函数参数占位符(避免补全时自动插入`${1}`等占位符)
        "--function-arg-placeholders=false",
        
        // 禁止自动插入#include(如需手动控制头文件引入)
        "--header-insertion=never",
        
        // 重命名文件时无数量限制(默认可能限制大项目重命名)
        "--rename-file-limit=0",
        
        // 启用Clangd的配置文件(即前面提到的user/project级config.yaml)
        "--enable-config",
        
        // 并行任务数量(根据CPU核心数调整,如8核设为8,加速索引)
        "-j=12",
        
        // PCH(预编译头)存储在内存中,提升解析速度
        "--pch-storage=memory",
        
        // 格式化输出日志(方便调试)
        "--pretty",
        
        // 【核心】指定compile_commands.json的路径(必须修改!)
        // 该文件由CMake、Make等构建工具生成,包含项目编译信息(如头文件路径、宏定义)
        // 解释:基于cmake构建管理项目时,使用该命令(--compile-commands-dir=)产生的compile_commands.json会放到指定文件夹下同时该文件帮助你找到头文件信息索引
        // 格式:--compile-commands-dir=项目中compile_commands.json所在的文件夹路径
        "--compile-commands-dir=${workspaceFolder}/build",  // 示例:项目根目录下的build文件夹
        
        // 【核心】指定编译器路径(解决标准库头文件找不到的问题)
        // 通配符匹配编译器路径(如ARM交叉编译器、x86编译器)
        // 格式:--query-driver=编译器可执行文件的路径(支持*通配符)
        // "--query-driver=${userHome}/tools/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-g*"  // 示例:ARM编译器路径
        "--query-driver=D:/mingw64/bin"
    ]
}

4.4 安装辅助插件CMake插件,因为必须使用cmake构建出clangd信息才能解析工程

4.4.1 安装cmake工具链本体

Download CMake

添加环境变量

4.4.2 安装cmake插件

4.4.3 配置工具链路径

4.5 加法小程序工程测试(使用mingw编译+clangd插件解析工程)

选择mingw里的g++编译和clangd解析

4.5.1 创建根目录的main.c、子文件夹add、顶层cmake

根目录下的main.c
cpp 复制代码
#include <iostream>
#include "add.h"
#include <cstdlib>
int main() {
    system("chcp 65001 > nul");
    // 先单独计算add结果,方便排查函数是否异常
    int add_result = add(1, 1);

    // 输出后立即刷新缓冲区,解决PowerShell无输出问题
    std::cout << "add函数计算结果:" << add_result << std::endl << std::flush;
    system("pause");
    return 0;
}
根目录下的CMakeLists.txt
cpp 复制代码
# 主目录 CMakeLists.txt

cmake_minimum_required(VERSION 3.18)

# 强制 Clang 使用 UTF-8 编码
add_compile_options(-finput-charset=UTF-8 -fexec-charset=UTF-8)
# 强制 Windows 控制台使用 UTF-8
add_compile_definitions(_UNICODE UNICODE)

set(CMAKE_CXX_FLAGS "-static")
set(CMAKE_EXE_LINKER_FLAGS "-static")

# 强制使用  作为 C++ 编译器
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_C_COMPILER "gcc")

# 强制 Debug 模式
set(CMAKE_BUILD_TYPE Debug)
# 强制 Debug 模式,生成调试符号(clang 同样需要 -g 选项)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")

project(E9_clang_test)  # 项目名可保持不变

# 开启编译数据库生成(关键!clangd依赖这个文件 一定一定一定要注意)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# 关键:添加子目录(编译add模块)
# 确保子目录也继承这些 Debug 模式配置
add_subdirectory(add)

# 定义可执行程序目标(目标名:E9_clang_test)
add_executable(E9_clang_test main.cpp)

# 链接add库(目标名必须和上面的add_executable一致)
target_link_libraries(E9_clang_test add)
根目录下的.clangd
cpp 复制代码
CompileFlags:
  # 强制 clangd 匹配 MinGW 编译环境,找到标准库头文件
  Add:
    - --target=x86_64-w64-mingw32
    - --sysroot=D:/SoftwaresHub/mingw64
    - -std=c++17
    - -ID:/SoftwaresHub/mingw64/x86_64-w64-mingw32/include/c++
    - -ID:/SoftwaresHub/mingw64/x86_64-w64-mingw32/include
    - -I${CMAKE_SOURCE_DIR}/add
  # 移除不必要的警告,避免干扰
  Remove: [-W*]
Index:
  # 自动索引 C++ 标准库,解决 iostream 找不到的问题
  StandardLibrary: Yes
  Background: Build
子文件夹add的add.h
cpp 复制代码
#ifndef __ADD_H__
#define __ADD_H__

int add(int a, int b);

#endif // !__ADD_H__
子文件夹add的add.cpp
cpp 复制代码
#include "add.h"

int add(int a, int b)
{
    return a+b;
}
子文件夹add的CMakeLists.txt
cpp 复制代码
# 强制开启 Debug 模式,生成调试符号
set(CMAKE_BUILD_TYPE Debug)
# 针对 C++ 代码,强制添加调试选项(-g 生成调试符号,-O0 关闭优化)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")


add_library(add STATIC add.cpp)

target_include_directories(add PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

注:添加调试符号产生是为了可以后续启动调试

4.5.2 在cmake插件工具哪里可以指定编译工具链包

选择mingw的GCC里的工具链

4.5.3 成功结果

如果powershell里打印信息是乱码的,是因为控制台是GBK,代码文件时UTF-8,建议控制台编码声明为UTF-8

4.6 出现了跳转和出现一些代码提示(if语句结尾处提示,参数前有变量名:)则可以成功使用clangd解析工程正常跳转

五、问题记录

5.1 成功编译程序后,执行可执行程序后,powershell和CMD窗口没有打印信息

原始cmake文件

根cmake

cpp 复制代码
# 主目录 CMakeLists.txt


# 强制使用 ++ 作为 C++ 编译器
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_C_COMPILER "gcc")
# 强制 Debug 模式
set(CMAKE_BUILD_TYPE Debug)
# 强制 Debug 模式,生成调试符号(clang 同样需要 -g 选项)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")

cmake_minimum_required(VERSION 3.18)

project(E9_clang_test)  # 项目名可保持不变

# 开启编译数据库生成(关键!clangd依赖这个文件)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# 关键:添加子目录(编译add模块)
# 确保子目录也继承这些 Debug 模式配置
add_subdirectory(add)

# 定义可执行程序目标(目标名:E9_clang_test)
add_executable(E9_clang_test main.cpp)

# 链接add库(目标名必须和上面的add_executable一致)
target_link_libraries(E9_clang_test add)

子文件夹cmake文件

cpp 复制代码
# 强制开启 Debug 模式,生成调试符号
set(CMAKE_BUILD_TYPE Debug)
# 针对 C++ 代码,强制添加调试选项(-g 生成调试符号,-O0 关闭优化)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0")

cmake_minimum_required(VERSION 3.10)

add_library(add STATIC add.cpp)

target_include_directories(add PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

5.1.1 发现问题

前提情况:
同时,我想要尝试clang++和clangd这个方案,但是这个需要Visual Studio/MSVC和Windows_SDK,以及缺少构建工具,但是我的系统是新装的,所以没有。

则切换方案:mingw编译代码和clangd解析代码,然后遇见了这个无打印信息的现象

使用语句dump出错误号,由AI分析出是缺少了一些系统库DLL文件,但是可以使用mingw里自带的库

powershell使用

$LASTEXITCODE

CMD窗口使用

echo %errorlevel%

5.1.2 解决问题

在顶层cmake文件添加下面两句,这个-static连接的是mingw里的系统库文件

cpp 复制代码
set(CMAKE_CXX_FLAGS "-static")
set(CMAKE_EXE_LINKER_FLAGS "-static")
cpp 复制代码
# 主目录 CMakeLists.txt

cmake_minimum_required(VERSION 3.18)

# 强制 Clang 使用 UTF-8 编码
add_compile_options(-finput-charset=UTF-8 -fexec-charset=UTF-8)
# 强制 Windows 控制台使用 UTF-8
add_compile_definitions(_UNICODE UNICODE)

set(CMAKE_CXX_FLAGS "-static")
set(CMAKE_EXE_LINKER_FLAGS "-static")

# 强制使用  作为 C++ 编译器
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_C_COMPILER "gcc")

# 强制 Debug 模式
set(CMAKE_BUILD_TYPE Debug)
# 强制 Debug 模式,生成调试符号(clang 同样需要 -g 选项)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")

project(E9_clang_test)  # 项目名可保持不变

# 开启编译数据库生成(关键!clangd依赖这个文件)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# 关键:添加子目录(编译add模块)
# 确保子目录也继承这些 Debug 模式配置
add_subdirectory(add)

# 定义可执行程序目标(目标名:E9_clang_test)
add_executable(E9_clang_test main.cpp)

# 链接add库(目标名必须和上面的add_executable一致)
target_link_libraries(E9_clang_test add)

参考链接(如有侵权,请联系删除):

VSCode(Visual Studio Code)扩展及缓存占用C盘空间问题的解决 - 灰信网(软件开发博客聚合)

【VSCode】【Clangd】Win下的基于LLVM/Clangd+Clangd插件+MINGW+CMake的VSCode配置C/C++开发环境的详细教程-CSDN博客

相关推荐
2501_916007472 小时前
iOS 开发工具有哪些 按开发流程整理的工具清单
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
yeziyfx3 小时前
vscode 创建flutter项目
ide·vscode·flutter
ycjunhua3 小时前
cusor从vscode中导入配置
ide·vscode·编辑器
FLEMMINGS3 小时前
当 Android Studio 模拟器提示emulator failed to connect within 5 minutes
android·ide·android studio
_只道当时是寻常3 小时前
【开发工具】Trae IDE 解决 Windows 下 C 工程无法跳转定义问题
ide
Android技术之家3 小时前
Android Studio 专属AI智能体+Skills完整版提示词(可直接复制使用)
android·ide·人工智能·android studio
龙智DevSecOps解决方案4 小时前
Java 开发者指南:全面对比传统 IDE AI 插件与 Cursor、Windsurf 等 AI 原生 IDE
java·ide·ai编程·jrebel
kcuwu.4 小时前
Anaconda创建虚拟环境及Pycharm关联(搭建ai智能体准备工作)
ide·python·pycharm
yosh'joy!!5 小时前
下载Trae使用
ai·trae