我试图在“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/