VSCode+Code Runner C++添加静态依赖库连接Mysql

以连接Mysql所需的依赖库为例

1. 为插件添加头文件目录,不然语法检查提示错误

在这里插入图片描述

2. 项目根文件夹命名有空格,在根文件夹下有bin、include、lib、src三个文件夹

在这里插入图片描述

3. include下创建头文件a.cpp,内含

#ifndef DAtACONNECTION_H_
#define DAtACONNECTION_H_
#include <bits/stdc++.h>
#include <WinSock.h>  //一定要包含这个
#include <mysql.h>
#include <string>

const int cmdSize = 10000000;
class DataConnection
{
    
    

private:
    MYSQL_RES *res = NULL;
    MYSQL_ROW column = NULL;
    char query[5000];
    MYSQL mysql;

public:
    bool connectDataBase();
};

#endif

4. src下创建a.cpp

#include "a.hpp"
bool DataConnection::connectDataBase()
{
    
    
    mysql_init(&mysql);
    const char host[] = "127.0.0.1";
    const char user[] = "root";
    const char passwd[] = "root";
    const char db[] = "managework";
    unsigned int port = 3306;
    const char *unix_socket = NULL;
    unsigned long client_flag = 0;

    if (mysql_real_connect(&mysql, host, user, passwd, db, port, unix_socket, client_flag))
    {
    
    
        mysql_query(&mysql, "set names gbk");
        return true;
    }
    else
    {
    
    
        return false;
    }
}

5. lib一般是为vc提供的库,但可以转化为.a的g++的库格式,这是参考文章Windows下用GCC连接MySQL数据库_靠谱-ing-CSDN博客

6. 修改项目工程文件(.code-workspace)

因为想的是单独命令编译,不使用makefile,所以试了下通配符,有的版本的编译器可能不支持

{
    
    
	"folders": [
		{
    
    
			"path": "test space"
		}
	],
	"settings": {
    
    
		"code-runner.executorMap": {
    
    
			# 本人用的windows,部分路径需要用\并转义\\。
			# 本人用的g++编译器C++语言,编译器指令与gcc基本类似
			# -I (大写i) 增加 include 目录
			#-l (小写L) 增加静态库目录
			#-ld (小写L) 增加动态库目录 



			"cpp": "cd $dir && g++  -I \"E:/Desktop/test space/include\"  -I \"D:/Mysql/mysql-8.0.16-winx64/include\"   .\\\\*.cpp   -L \"E:/Desktop/test space/lib\" -lmysql   -o  ..\\bin\\$fileNameWithoutExt.exe && ..\\bin\\$fileNameWithoutExt.exe"
			
			# 注释如果在上边会失效,不晓得为啥
			# 生成文件名指定的有时很迷,有时有后缀有时没后缀,所以直接指定和运行都加上.exe
			# 数据库路径为D:/Mysql/mysql-8.0.16-winx64
			# 数据库头文件D:/Mysql/mysql-8.0.16-winx64/include
			# 因为需要将.lib转化为.a格式,所以我把转化后的库放在了E:/Desktop/test space/lib
			# .\\\\*.cpp为当前目录下的所有.cpp文件
			# 我用的windows系统,记得转化下路径
		},
		"files.associations": {
    
    
			"ostream": "cpp"
		}
	}
}

7. 当前的项目目录

因为它本身依赖的还有动态依赖库libmysql.dll,所以把libmysql.dll放到.exe同级目录
在这里插入图片描述

8. 效果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44575789/article/details/113976387