首页 > 数据库 >[C++] VS Code 中导入MYSQL (包含使用gcc,g++)

[C++] VS Code 中导入MYSQL (包含使用gcc,g++)

时间:2022-12-19 13:55:06浏览次数:48  
标签:文件 gcc Code ++ sjlj json exe MySQL

首先安装Gcc

1. 下载

链接 : https://sourceforge.net/projects/mingw-w64/files/

备用网盘 : https://pan.baidu.com/s/1trdQtDO6XqmfCbZHc1IDzQ?pwd=nwh5 

2. 添加环境变量

3. 创建一个c/c++的文件,随后进入该文件所在文件夹

按住CTRL + ALT + P 进入配置,修改编译器路径

 

编译器路径: 

 

 

 

修改IntelliSense模式:

 

 

 

 

 随后会自动生成.vscode文件,文件下会包含c_cpp_properties.json文件

4. 编译c/c++文件后,会生成tasks.json 文件, 和launch.json 文件(有时需要手动创建)

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Program Files\\MySQL\\MySQL Server 8.0\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "E:/BaiduNetdiskDownload/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

 

tasks.json 

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: cl.exe 生成活动文件",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/nologo",
                "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": "build",
            "detail": "调试器生成的任务。"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "E:/BaiduNetdiskDownload/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin/g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",                
            ],
            "options": {
                "cwd": "E:/BaiduNetdiskDownload/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

 

launch.json

{  
     "version": "0.2.0",  
    "configurations": [  
        {  
         "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
        "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
         "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
        "program": "${fileDirname}/${fileBasenameNoExtension}", //将要进行调试的程序的路径  
        "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
         "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
         "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
         "environment": [],  
         "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台====用true的时候需要在return的上面加getchar();  
         "MIMode": "gdb",  
         "miDebuggerPath": "E:\\BaiduNetdiskDownload\\x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0\\mingw64\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
            "preLaunchTask": "C/C++: gcc.exe 生成活动文件", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
         "setupCommands": [  
                {   
            "description": "Enable pretty-printing for gdb",  
                    "text": "-enable-pretty-printing",  
                    "ignoreFailures": false  
                }  
            ]  
        }  
    ]
}  

 

 

注意事项:

在编译cpp文件的时候,使用g++, 在编译c文件的时候,使用gcc

 

导入mysql

1. 下载mysql的c++版本

https://dev.mysql.com/downloads/installer/

 

2. 找到mysql对应的文件目录

example : C:\\Program Files\\MySQL\\MySQL Server 8.0\\include

需要在 c_cpp_properties.json以及tasks.json添加mysql的路径

 c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Program Files\\MySQL\\MySQL Server 8.0\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "E:/BaiduNetdiskDownload/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

 

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: cl.exe 生成活动文件",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/nologo",
                "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": "build",
            "detail": "调试器生成的任务。"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "E:/BaiduNetdiskDownload/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin/g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                //"-I", //包含头目录
                //"C:\\Users\\Administrator.DC_LENG\\Desktop\\cpptest", //头目录路径
                //"C:\\Users\\Administrator.DC_LENG\\Desktop\\cpptest\\datamanager.cpp", //不想一个个编译成 .o文件,直接包含 cpp 文件
                "-I",
                "C:\\Program Files\\MySQL\\MySQL Server 8.0\\include", // mysql头文件,有顺序要求,要求放在被导入文件之后,
                "-L",
                "C:\\Program Files\\MySQL\\MySQL Server 8.0\\lib", // mysql 库文件 dll
                "-llibmysql" // 导入那个库
            ],
            "options": {
                "cwd": "E:/BaiduNetdiskDownload/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

 

3. 把libmysql.dll复制到主函数所在的文件夹

4. testcode

#include <iostream>
#include <mysql.h>

using namespace std;
int main (){
    cout << "Hello, world!" << endl;
    // q1();
    MYSQL conn;
    int res;
    mysql_init(&conn);
 
    
   
    if (mysql_real_connect(&conn, "127.0.0.1", "root", "pswd", "test", 0, NULL, CLIENT_FOUND_ROWS)) //"root":数据库管理员 ,:123密码 "test":数据库的名字
    {
        printf("connect success!\n");
        res = mysql_query(&conn, "insert into test values('user','123456')");
        if (res)
        {
            printf("error\n");
        }
        else
        {
            printf("OK\n");
        }
        mysql_close(&conn);
    }
    else
    {
        printf("connect error!\n"); 
        cout << mysql_error(&conn) << endl;
    }
   
    return 0;
}

 

标签:文件,gcc,Code,++,sjlj,json,exe,MySQL
From: https://www.cnblogs.com/lengblog/p/16991954.html

相关文章

  • C++数学与算法系列之排列和组合
    1.前言本文将聊聊排列和组合,排列组合是组合学最基本的概念,在程序运用中也至关重要。排列问题:指从给定个数的元素中取出指定个数的元素进行排序。组合问题:指从给定个......
  • [leetcode]第 1 天 栈与队列(简单)
    09用两个栈实现队列思路栈:先进后出要求:先进先出。在队尾加,从队首删假设有栈A栈B,添加时压入栈A,删除时将栈A元素出栈,压入栈B,实现倒序,进而实现从队首删classCQueue{......
  • Fcode_template
    system("pause");#include<iostream>usingnamespacestd; #include<iostream>usingnamespacestd;template<typenameT>TAdd2Value(Ta,Tb){ Tresult; r......
  • 连号区间数【第四届蓝桥杯省赛C++B组,第四届蓝桥杯省赛JAVAB组】
    连号区间数小明这些天一直在思考这样一个奇怪而有趣的问题:在\(1∼N\)的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间\([L,R]\)里的所有元素(即......
  • XCode 去除多余的日志打印
    2022-12-1911:01:41.459551+0800CarSteward[4245:1763260][tcp]tcp_input[C14.1:3]flags=[R]seq=1278556427,ack=3837105229,win=0state=LAST_ACKrcv_nxt=12785......
  • XCode 日志打印总是提示 iOS [framework] CUICatalog: Invalid asset name supplied:
    Xcode控制台打印:[framework]CUICatalog:Invalidassetnamesupplied:'(null)'不知道是哪里的图片不存在或者传入的图片名为nil了,项目大了就是大海捞针,不知道哪里找?按......
  • c++中输出小数
    首先需要有#include<iomanip>这个头文件,因为它是输出输出流的格式控制#include<iomanip>//用于调用setprecision(n)1doublesum=10;2cout<<setiosflags(ios......
  • XCode 打印完整日志
    正常NSLog打印容易被阶段,特别是转出json字符串打印的时候,使用以下方法可以达到完整打印日志的效果#ifdefDEBUG#defineDDLog(format,...)printf("class:<%p%s:(%d)......
  • 百度工程师带你探秘C++内存管理(ptmalloc篇)
    作者|daydreamer前篇《​​探秘C++内存管理(理论篇)​​》主要介绍了LinuxC++程序内存管理的理论基础,本文作为系列文章《探秘C++内存管理》的第二篇,将会探讨经典内存管理器......
  • 【算法训练营day22】LeetCode235. 二叉搜索树的最近公共祖先 LeetCode701. 二叉搜索树
    LeetCode235.二叉搜索树的最近公共祖先题目链接:235.二叉搜索树的最近公共祖先初次尝试利用二叉搜索树的性质,迭代法即可,判断目标节点的值是否在当前节点值的两侧或与当......