错误解决
调试时中文乱码
加入"-fexec-charset=GBK"
cmake启动中文乱码,或者控制台终端中文乱码怎么也解决不了
需要更改电脑上的语言设置,右键开始菜单>搜索语言设置>打开>点语言>点管理语言设置>点更改系统区域设置>选中Beta版:使用Uincode …
暴力解决法,代码完美运行,但是可能会影响电脑上其他软件,因为有些软件中文是gbk的
vscode找不到gcc
launch里的"preLaunchTask"要和task里的"label"一模一样
设置调试时不显示黑窗口
把launch.json里的 “console”:“externalTerminal”改成"internalConsole"或者"integratedTerminal”
cmakelist设置的qt项目无法链接到库
点击下方工具栏的生成按钮,编译一下代码
QT项目include找不到文件
设置搜索 includePath
Qt:include Path添加
G:/Qt/6.7.2/msvc2019_64/include/**
cmake build里面有乱码
设置>搜索Cmake: Output Log Encoding,改成GBK
qt msvc项目运行没有输出qdebug之类的
在launch.json配置
"configurations": [
{
"name": "(msvc) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${command:cmake.launchTargetPath}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"console": "internalConsole",
"visualizerFile": "c:\\Users\\PVer\\AppData\\Roaming\\Code\\User\\workspaceStorage\\df49109334abc97f1981c578f12d7ad4\\tonka3000.qtvsctools\\qt.natvis.xml"
}
运行和调试选择(msvc)luanch
主要是把控制台合并到集成控制台
然后cmakelist.txt里也要改一下WIN32_EXECUTABLE OFF
调试的时候设置调试控制台不显示loaded xx.dll的信息
在launch.json里设置configurantions里添加
"logging": {
"moduleLoad": false,
},
由于clangd造成的标准库标红
在settings.json里clangd.argumengts里添加
"--query-driver=G:/Qt/Tools/mingw1310_64/bin/g* "
"--compile-commands-dir=${workspaceFolder}/build/${buildType}"
这里mingw的地址改成自己的mingw的地址
qt项目提示no such file
在cmakelist里添加include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} )
cmake项目ctrl+F5调试时不重新生成
launch.json里添加"preLaunchTask": "CMake: 生成"
程序莫名其妙崩溃,也不报错
检查一下指针类型的类成员有没有没初始化的
stm32导入的cmake项目头文件报错
先构建,然后找到生成的compile_commands.json
在c_cpp_properties.json里添加如下行
根据个人的文件位置不同添加地址,也可以使用绝对地址
"compileCommands": "${workspaceFolder}/build/Debug/compile_commands.json"
或者直接用cubemx生成的
"compileCommands": "${workspaceFolder}/compile_commands.json"
stm32无法烧录程序,出现如下图情况
stm32进入睡眠模式后无法烧写新的代码
因为CPU不工作,可以按住复位键的同时,重新烧写
使用技巧
配置代码模版
为避免重复引入问题,通常需要在头文件中编写如下代码
#ifndef __DRI_UTIL_H__
#define __DRI_UTIL_H__
#endif /* __DRI_1WRIE_H__ */
为提高效率,可以配置一个代码模版自动生成上述代码,具体配置步骤如下
(1)在Vscode中,按快捷键Ctrl+Shift+P
(2)搜索snippets命令,选择“代码片段:配置代码片段”
(3)选择“新建全局代码片段文件”
(4)新建名称:add header
(5)创建后会自动打开,将内容替换为以下代码:
{
"C C++ Header": {
"scope": "c, cpp",
"prefix": "header",
"description": "Add #ifndef, #define and #endif",
"body": [
"#ifndef __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
"#define __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
"",
"$0",
"",
"#endif /* __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__ */"
]
}
}
创建好后在文件中直接输入header即可