欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > VS Code搭建LLVM(clang/clang++)编译环境(自己备用)

VS Code搭建LLVM(clang/clang++)编译环境(自己备用)

2024/10/24 8:12:47 来源:https://blog.csdn.net/book_dw5189/article/details/142372907  浏览:    关键词:VS Code搭建LLVM(clang/clang++)编译环境(自己备用)

在MSYS2的MinGW64环境中,clang++.exe工具是为了提供一种替代的C++编译器。它基于LLVM项目,具有以下优势:

  1. 现代化特性:Clang支持最新的C++标准和语言特性,提供更好的语法解析和错误提示。
  2. 高效优化:Clang的优化技术可以生成高效的机器代码,提升程序性能。
  3. 兼容性:Clang可以与MinGW64环境中的其他工具(如GCC)兼容,方便在Windows上进行开发。
  4. 多平台支持:Clang支持多种平台和目标架构,增加了开发的灵活性。

因此,在MinGW64下包含clang++.exe是为了给开发者提供更多选择。你可以根据自己的需求选择使用GCC或Clang进行开发。

创建tasks.json

在项目根目录下创建一个 .vscode 文件夹,然后在该文件夹内创建 tasks.json 文件,添加以下内容:

{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "D:\\msys64\\mingw64\\bin\\clang++.exe","args": ["-g","${file}",  // 确保这个是你的源文件"-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]}]}

创建launch.json

在同一 .vscode 文件夹内创建 launch.json 文件,添加以下内容以配置调试:

{"version": "0.2.0","configurations": [{"name": "Debug","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build","miDebuggerPath": "D:\\msys64\\mingw64\\bin\\gdb.exe"}]}

c_cpp_properties.json 文件用于配置 VS Code 中 C/C++ 扩展的 IntelliSense。以下是一个示例配置,适用于使用 MinGW 的 Windows 环境:

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}\\**","D:\\msys64\\mingw64\\include\\**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"compilerPath": "D:\\msys64\\mingw64\\bin\\clang++.exe","cStandard": "c11","cppStandard": "c++17","intelliSenseMode": "clang-x64"}],"version": 4
}

 ---------

Clang 和 LLVM 是两个密切相关的项目,广泛用于编程语言的编译和开发。

Clang

  • 定义:Clang 是一个 C、C++ 和 Objective-C 的编译器前端。
  • 功能:提供高效的编译、良好的错误和警告信息,以及优秀的开发者工具支持。
  • 优点:开源、模块化、易于扩展,能够支持快速的编译和增量编译。

LLVM

  • 定义:LLVM 是一个编译器基础设施项目,提供了一套用于构建编译器的工具和库。
  • 功能:支持多种编程语言的编译优化、代码生成等功能。
  • 组件:包括中间表示(IR)、优化器、后端代码生成器等,能够生成高效的机器代码。

关系

  • Clang 是基于 LLVM 的前端,负责解析源代码并生成 LLVM IR,后者再通过 LLVM 的后端生成目标代码。
  • 二者结合,提供了强大的编译工具链。

应用

Clang/LLVM 被广泛应用于各种开源和商业项目,包括现代 IDE 和工具链(如 Xcode 和 Visual Studio Code)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com