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. 效果

在这里插入图片描述

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值