codeblocks https://jaist.dl.sourceforge....
cmake 【下载解压版】 https://cmake.org/download/
cmake官方下载很是很是的慢,能够下载我百度网盘的3.3.1版
连接: https://pan.baidu.com/s/1sMGO... 密码: dt96
vscode 百度一下html
把 codeblocks的安装文件的后缀名改成 .rar,而后解压,获得 MinGW
把 MinGW 复制到非中文无空格目录
修改 MinGW 为小写
把 mingw32-make.exe 复制一份,更名为 make.exec++
把 mingw/bin 添加到环境变量redis
验证shell
gcc -v make -v gdb -v
Microsoft Windows [版本 6.1.7601] 版权全部 (c) 2009 Microsoft Corporation。保留全部权利。 C:\Users\Administrator>gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=D:/program/cpp/mingw/bin/../libexec/gcc/mingw32/5.1.0/lto-wrapper.exe Target: mingw32 Configured with: ../../../src/gcc-5.1.0/configure --build=mingw32 --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable -libgomp --enable-lto --enable-graphite --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs - -enable-fully-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-ld --disable-werror --disable-nls --d isable-win32-registry --disable-symvers --enable-cxx-flags='-fno-function-sections -fno-data-sections -DWINPTHREAD_STATIC' --pre fix=/mingw32tdm --with-local-prefix=/mingw32tdm --with-pkgversion=tdm-1 --enable-sjlj-exceptions --with-bugurl=http://tdm-gcc.td ragon.net/bugs Thread model: posix gcc version 5.1.0 (tdm-1) C:\Users\Administrator>make -v GNU Make 3.82.90 Built for i686-pc-mingw32 Copyright (C) 1988-2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. C:\Users\Administrator>gdb -v GNU gdb (GDB) 7.9.1 Copyright (C) 2015 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "mingw32". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word". C:\Users\Administrator>
解压cmake
把 cmake/bin 添加到环境变量json
验证架构
Microsoft Windows [版本 6.1.7601] 版权全部 (c) 2009 Microsoft Corporation。保留全部权利。 C:\Users\Administrator>cmake --version cmake version 3.3.1 CMake suite maintained and supported by Kitware (kitware.com/cmake). C:\Users\Administrator>
非中文无空格目录app
F:\code\vscode\chello>tree /f 卷 code 的文件夹 PATH 列表 卷序列号为 0FDD-169A F:. │ build.bat │ CMakeLists.txt │ ├─.vscode │ launch.json │ tasks.json │ ├─include │ tool.h │ └─src CMakeLists.txt main.c tool.c F:\code\vscode\chello>
# 指定最小版本 cmake_minimum_required (VERSION 3.3) # 指定工程名和语言类型 project (hello C) # debug set(CMAKE_BUILD_TYPE "Debug") # c99 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g") # 添加子目录 add_subdirectory(src)
# 头文件目录 include_directories(${PROJECT_SOURCE_DIR}/include) # 源文件列表 aux_source_directory(. SRCS) # 可执行文件目录 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) # 可执行文件 add_executable(hello ${SRCS})
#ifndef TOOL_H #define TOOL_H int sum( int a, int b); #endif
#include "../include/tool.h" int sum( int a, int b){ return a + b; }
#include <stdio.h> #include "../include/tool.h" int main(int argc, char const *argv[]) { int a = 1; int b = 2; printf("%d + %d = %d\n",a,b,sum(a,b)); a = 3; a = 4; a = 5; a = 6; a = 7; a = 8; getchar(); return 0; }
{ "version": "0.2.0", "configurations": [ { "name": "C++ Launch (GDB)", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/bin/hello", // 可执行文件位置 "miDebuggerPath":"D:/program/cpp/mingw/bin/gdb.exe", // gdb 位置 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "preLaunchTask": "compile", // task.json 中的 label "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
{ "version": "2.0.0", "tasks": [ { "label": "compile", "type": "shell", "command": "build.bat", "group": { "kind": "build", "isDefault": true } } ] }
if not exist build md build cd build cmake -G "MinGW Makefiles" .. make
F5便可一键构建、运行[调试]ui
https://www.2cto.com/kf/20160...url
launch.jsonspa
{ "version": "0.2.0", "configurations": [ { "name": "C++ Launch (GDB)", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,这里只能为cppdbg "request": "launch", // 请求配置类型,能够为launch(启动)或attach(附加) "launchOptionType": "Local", // 调试器启动类型,这里只能为Local "targetArchitecture": "x86", // 生成目标架构,通常为x86或x64,能够为x86, arm, arm64, mips, x64, amd64, x86_64 "program": "${file}.exe", // 将要进行调试的程序的路径 "miDebuggerPath":"a:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "args": ["blackkitty", "1221", "# #"], // 程序调试时传递给程序的命令行参数,通常设为空便可 "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,通常设置为false "cwd": "${workspaceRoot}", // 调试程序时的工做目录,通常为${workspaceRoot}即代码所在目录 "externalConsole": true, // 调试时是否显示控制台窗口,通常设置为true显示控制台 "preLaunchTask": "g++" // 调试会话开始前执行的任务,通常为编译程序,c++为g++, c为gcc } ] }