【Trae】如何使用Trae编译C++(附带MinGW)
结果
先看结果
这是一道回文串题目,F5编译,控制台输入输出。
下载
- 下载Trae编译器,直接去官网下:https://www.trae.cn/
- 下载VSCode编译器,这个相信用Trae的各位都不陌生。https://code.visualstudio.com/
- 查看你的C盘,
C:\Users\Administrator\.vscode\extensions
路径下是否有extensions.json
文件,如果没有,请将VSCode卸载后重装。
- 查看你的C盘,
安装插件
在VSCode里安装“C/C++”插件。
这里需要在VSCode里安装的原因是C/C++插件在Trae里是搜不到的。
再次查看C:\Users\Administrator\.vscode\extensions
路径,看看插件是否安装成功,且extensions.json
文件里有这个插件。
关闭VSCode,打开Trae。
点击右上角头像-IDE设置
选择“从VSCode导入”,等待它导入插件,导入完成后点击查看一下,是不是下载的那些插件。
编译
新建一个文件夹,用Trae打开,再在里面新建一个cpp文件,输入一段HelloWorld代码。
会看到自动生成了一个.vscode文件夹。
在这里按F5运行,如果运行成功,会出现如下所示。
如果运行失败,请进行如下配置。
下载MinGW并安装到D盘(傻瓜式教学,跟着安就行,除非你知道要修改的json里每个参数的意义)
这里我贴心地给大家建了项目。
https://gitcode.com/qq_36286039111111111111111mq8/MyMinGW.git
把这个项目拉下来,MinGW放到D盘,bin文件夹的路径如下所示。
并且在环境变量的PATH里配置这个bin文件夹(相信各位对PATH都很熟悉)
接下来来到Trae,找到那个.vscode文件夹
c_cpp_properties.json
{
{"configurations": [{"name": "windows-gcc-x64","includePath": ["${workspaceFolder}/**"],"compilerPath": "D:/MinGW/bin/gcc.exe","cStandard": "${default}","cppStandard": "${default}","intelliSenseMode": "windows-gcc-x64","compilerArgs": [""],"browse": {"limitSymbolsToIncludedHeaders": true,"databaseFilename": "","path": ["${workspaceFolder}/**","D:/mingw/include/**","D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++","D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32","D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward","D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include","D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed","D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"]}}],"version": 4
}
}
launch.json
{"version": "0.2.0","configurations": [{"name": "(gdb) Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "D:/MinGW/bin/gdb.exe","preLaunchTask": "g++","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]},{"name": "C/C++ Runner: Debug Session","type": "cppdbg","request": "launch","args": [],"stopAtEntry": false,"externalConsole": true,"cwd": "i:/work/MyGit/MyCpp_Git","program": "i:/work/MyGit/MyCpp_Git/build/Debug/outDebug","MIMode": "gdb","miDebuggerPath": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}
settings.json 这个不一定需要,但我还是放在这里
{"C_Cpp_Runner.cCompilerPath": "gcc","C_Cpp_Runner.cppCompilerPath": "g++","C_Cpp_Runner.debuggerPath": "gdb","C_Cpp_Runner.cStandard": "","C_Cpp_Runner.cppStandard": "","C_Cpp_Runner.msvcBatchPath": "","C_Cpp_Runner.useMsvc": false,"C_Cpp_Runner.warnings": ["-Wall","-Wextra","-Wpedantic","-Wshadow","-Wformat=2","-Wcast-align","-Wconversion","-Wsign-conversion","-Wnull-dereference"],"C_Cpp_Runner.msvcWarnings": ["/W4","/permissive-","/w14242","/w14287","/w14296","/w14311","/w14826","/w44062","/w44242","/w14905","/w14906","/w14263","/w44265","/w14928"],"C_Cpp_Runner.enableWarnings": true,"C_Cpp_Runner.warningsAsError": false,"C_Cpp_Runner.compilerArgs": [],"C_Cpp_Runner.linkerArgs": [],"C_Cpp_Runner.includePaths": [],"C_Cpp_Runner.includeSearch": ["*","**/*"],"C_Cpp_Runner.excludeSearch": ["**/build","**/build/**","**/.*","**/.*/**","**/.vscode","**/.vscode/**"],"C_Cpp_Runner.useAddressSanitizer": false,"C_Cpp_Runner.useUndefinedSanitizer": false,"C_Cpp_Runner.useLeakSanitizer": false,"C_Cpp_Runner.showCompilationTime": false,"C_Cpp_Runner.useLinkTimeOptimization": false,"C_Cpp_Runner.msvcSecureNoWarnings": false,"files.associations": {"cctype": "cpp","cmath": "cpp","cstdarg": "cpp","cstdint": "cpp","cstdio": "cpp","cstdlib": "cpp","type_traits": "cpp","limits": "cpp","typeinfo": "cpp","iostream": "cpp"},"terminal.integrated.suggest.enabled": true
}
tasks.json 这个文件不一定需要,但我还是放在这里。
注意像我这样配置需要在项目目录下新建一个名为exe的文件夹,用于存储编译过后的文件。
{"version": "2.0.0","command": "g++","args": ["-g","${file}","-o","${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"],"problemMatcher": {"owner": "cpp","fileLocation": ["relative","\\"],"pattern": {"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$","file": 1,"line": 2,"column": 3,"severity": 4,"message": 5}},"tasks": [{"type": "cppbuild","label": "g++","command": "D:/MinGW/bin/g++.exe","args": ["-fdiagnostics-color=always","-g","${file}","-o","${workspaceFolder}/exe/${fileBasenameNoExtension}.exe",""],"options": {"cwd": "D:/MinGW/bin"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}]
}
至此再去尝试编译,一般没什么大问题 ,报什么错就去解决一下就好了。
QA
- 如果控制台能编译成功就是不能输入数据怎么办?
我遇到了之后是MinGW版本问题,把原本的MinGW删了,装我在文章里给的那个。 - 报错找不到g++?
PATH没配置。