一、目的
问题描述:在配置工程和编译工程时出现以下提示,并且无法进入调试。
[cpptools] The build configurations generated do not contain the active build configuration. Using "release" for CMAKE_BUILD_TYPE instead of "Release" to ensure that IntelliSense configurations can be found
最近更新了hpm-sdk版本到v1.6.0时,在使用以前的工程进行编译时出现以下问题,具体表现为CMAKE_BUILD_TYPE必须使用小写的release/debug,因为cpp-tools要求用小写的。
        
 
 
        cmake-tool默认支持的是Debug, Release, RelWithDebInfo, MinSizeRel这些值,这些默认值是从默认配置中继承过来的。
        

 
 
然后从hpm-sdk的更新日志上来看从v1.4.0版本更新CMAKE_BUILD_TYPE的定义
 
 
我们从最新的v1.6.0的hpm-sdk/CMakeLists.txt文件中看到
 
 
CMAKE_BUILD_TYPE用来决定编译选项CFLAG是"-O3"还是"-g"。
如果不进行修改,会出现什么具体问题呢?

能正常构建和编译,但是无法进入调试。
二、解决版本
使用CMake Variants解决问题。
在.vscode目录下新增文件cmake-variants.yaml,具体内容如下:
buildType:
  default: debug
  choices:
    debug:
      short: Debug
      long: Emit debug information
      buildType: debug
    release:
      short: Release
      long: Optimize generated code
      buildType: release原有的文件.vscode/settings.json如下:
{
    "cmake.buildBeforeRun": true,
    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
    "cortex-debug.openocdPath": "${env:HPM_OPENOCD_PATH}/src/openocd",
    "cortex-debug.variableUseNaturalFormat": false,
    "cmake.configureSettings": {
        "BOARD":"hpm5301evklite"
    }
}.vscode/launch.json内容如下 :
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "HPM Debug Jlink",
            "cwd": "${workspaceRoot}",
            "executable": "${command:cmake.launchTargetPath}",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "jlink",
            "gdbPath" : "${env:GNURISCV_TOOLCHAIN_PATH}/bin/riscv32-unknown-elf-gdb",
            "device": "HPM5301xEGx",
            "interface": "jtag",
            "svdFile":"${env:HPM_SDK_BASE}/soc/HPM5301/HPM5301_svd.xml",
            "runToEntryPoint": "main",
            // Work around for stopping at main on restart
            "postRestartCommands": [
                "break main",
                "continue"
            ]
        }
    ]
}经过添加cmake-variants.yaml文件对CMAKE_BUILD_TYPE值进行复写为debug,而不是Debug。
        
通过以上的操作,问题就可解决。



















