visual-studio-code - VS Code 无法识别 TI C2000 编译器

标签 visual-studio-code

我试图在“compilerPath”中设置 TI C2000 C/C++ 编译器 (cl2000.exe),但 VS Code 说:

无法使用编译器路径“.../bin/cl2000.exe”解析配置。使用“cl.exe”代替。

有没有办法做到这一点,例如手动指定在哪里查找包含文件等,或者无论我做什么,除大型编译器(gcc、clang)之外的编译器都无法与 VS Code 一起工作?

我不需要调试器、库文档等功能,但我确实需要智能感知(msvc-x64)。我可以使用 cl.exe作为已定义的编译器,但它无法识别一些特定于编译器的内容,例如 __attributes__((ramfunc)) ,它没有使用正确的 <stdint.h>等等

最佳答案

使用当前的 C/C++ 扩展(v1.7.1),我认为您想要的东西是无法实现的,因为它似乎需要与编译器进行某种集成,以从中提取大量“隐藏”信息它,目前仅支持 Microsoft 的 C 编译器、Clang 和 GCC ( source )。

无论如何,使用正确的c_cpp_settings.json,您可以获得很多功能。

这是我当前在 F280049C 上的项目设置的副本。我将电机控制 SDK 作为子模块添加到项目文件夹中,您可能不需要。确保添加所有不同的 SDK 以及与您的项目相关的其他内容。

对于 defines 属性,我在 Code Composer 中检查了项目属性,然后在 CSS Build/C2000 Compiler/Predefined Symbols 中,有一个在命令行。有一堆我不知道如何获取的“隐藏”定义,请参阅下面代码中的评论。对示例中的内容持保留态度,您的定义可能会有所不同。

可以在命令行中传递的标志中检查 C 和 C++ 标准(在我的项目中它们是 C++03 和 C11)。

编译器路径必须留空 (""),因为扩展无法使用 C2000 编译器,这就是为什么您会收到 Unable to resolving configuration with compilerPath ".. ./bin/cl2000.exe”。使用“cl.exe”代替。错误。我猜 VS Code 会看到“cl.exe”编译器,这是 C/C++ 扩展可以使用的编译器(它是 Microsoft 的 VS 编译器,也许它的名称与 TI 的类似这一事实会误导您)

关于intelliSense模式,在C2000的恶魔架构下没有任何作用。我更喜欢将 IntelliSense 设置为 32 位,但这与 64 位一样错误,所以请在那里选择你的毒药。请记住,诸如 sizeof 的值或指针之类的内容在 VS Code 中将是错误的(因为您告诉它将它们视为 32 位体系结构)。

尝试这个配置。您会在某些包含项下看到很多红色波浪线,但其中大多数应该位于您的浏览路径中,并且可以通过单击黄色灯泡图标自动添加。

{
    "env": {
        "SDKPath": "${workspaceFolder}/../lib/C2000Ware_MotorControl_SDK_3_01_00_00",
        "StdLibPath": "C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS",
        "XDCTools": "C:/ti/ccs1031/xdctools_3_62_00_08_core",
        "TIBIOS": "C:/ti/bios_6_83_00_18/packages/"
    },
    "configurations": [
        {
            "name": "TI",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "browse": {
                "path": [
                    "${StdLibPath}/**",
                    "${SDKPath}/**",
                    "${XDCTools}/**",
                    "${TIBIOS}/**"
                ]
            },
            "defines": [
                "_F28004x",
                "DEBUG",
                "_INLINE",
                "_FLASH",
                "DRV8353_SPI",
                // Hidden predefined symbols. They are set by the compiler by default, but
                // they are not output on the command line and I haven't found a way to
                // list them yet
                // needed for STL (see s_c__system.h)
                "_STLP_COMPILER",
                "__TI_COMPILER_VERSION__"
            ],
            "compilerPath": "",
            "cStandard": "c11",
            "cppStandard": "c++03",
            "intelliSenseMode": "gcc-x86"
        }
    ],
    "version": 4
}

请记住,使用微 Controller 时需要进行大量自定义操作,但我认为这会让您走上正轨。

关于visual-studio-code - VS Code 无法识别 TI C2000 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65280630/

相关文章:

python - 为什么尝试在Python 3.7的Visual Studio代码中使用except block无法工作?

visual-studio-code - 用用户定义的片段覆盖 VS 代码片段

visual-studio-code - Ubuntu 上的 VS Code - 看不到菜单栏

select - Visual Studio代码: Scroll speed too fast for selecting with mouse

bash - 如何将vscode/gitlens设置为wsl中git的默认编辑器

c++ - LLVM 和 Clang 中的入口点文件是什么?

git - 我的 VS Code SCM 装订线指示器突然出现奇怪的图案

visual-studio-code - 如何在 Apache Royale 中使用 AMFPHP

powershell - 如何在 Visual Studio Code 中运行我的 Powershell 脚本?

visual-studio-code - 如何在 Windows 上使用 Visual Studio Code 设置 Kestrel 调试?