以連接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同級目錄