【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博客

相关推荐
Luoxi_814 小时前
Anaconda超详细的安装教程+VScode的使用
ide·vscode·编辑器
球king16 小时前
CC GUI 插件:在 IDEA 中使用 CodeX
java·ide·intellij-idea
大龄牛码17 小时前
从模型基座到工程范式:GPT-5.6与Grok 4.5在主流AI IDE中的架构适配与选型分析
ide·人工智能·gpt
不负信仰18 小时前
Visual Studio 三月更新 —— 打造专属自定义 Agent
ide·visual studio
豆包MarsCode19 小时前
我用 TRAE Work 做了一个 C盘清理工具
trae
流量猎手21 小时前
Vscode登陆服务器
服务器·ide·vscode
HAPPY酷1 天前
【ROS2】16G 内存笔记本跑 ROS2 仿真?VMware 虚拟机“保姆级”配置指南 (R9 7940HX + RTX 4060)
java·linux·ide·windows·pycharm
烽火聊员1 天前
查看Android Studio错误日志
android·ide·android studio
ljs6482739511 天前
Linux运维实操:vi编辑器永久配置静态IP(CentOS系列)
linux·运维·编辑器
CyL_Cly2 天前
解决官网下载慢!Android Studio 最新版网盘下载
android·ide·android studio