Visual Studio配置MySQL庫
創建項目
打開Visual Studio,點擊菜單欄的文件,出現下拉菜單,依次選擇新建–>項目。
此時彈出新建項目窗口,在左邊依次展開已安裝–>模板–>C/C++,於右邊,Visual Studio 2017選擇空項目,Visual Studio 2015及以下版本選擇Win32控制檯應用程序,在項目名稱輸入框填寫Build,選擇項目存放的位置,最後點擊確定。
完成上述步驟後,Visual Studio 2017自動創建項目,而Visual Studio 2015及以下版本彈出Win32應用程序嚮導窗口,點擊下一步,勾選附加選項的空項目,去掉安全開發生命週期(SDL)檢查的勾選,最後點擊完成,自動創建項目。
添加源文件
右擊解決方案資源管理器中項目Build的源文件文件夾,彈出右鍵菜單,依次選擇添加–>新建項,如下圖所示:
此時彈出添加選項窗口,在左邊依次展開已安裝–>Visual C++,於右邊選擇C++ 文件(.cpp),在名稱輸入框中填寫main.cpp,最後點擊添加。
引用外部庫方式
提供絕對路徑和相對路徑,共兩種於Visual Studio開發環境引用外部庫的方式。
以絕對路徑方式引用MySQL庫
這種方法雖然步驟少,操作簡單,不過不具備可移植性(此處所謂的可移植性,是把項目放在另一臺計算機另一個環境上編譯運行)。
右擊解決方案資源管理器的項目Build,如下圖所示:
在彈出菜單最下面,選擇屬性,彈出項目屬性頁,在左邊依次展開屬性配置–>C/C++,選中常規,於右邊的附加包含目錄填寫MySQL解壓後根目錄的include文件夾路徑。
我的include路徑是E:/Program Files (x86)/mysql-5.7.19-win32/include,如下圖所示:
再展開左邊鏈接器,點擊常規,在右邊的附加庫目錄填寫MySQL解壓後根目錄的lib文件夾路徑。
我的lib路徑是E:/Program Files (x86)/mysql-5.7.19-win32/lib,如下圖所示:
最後點擊確定,完成在Visual Studio開發環境以絕對路徑引用MySQL庫的步驟。
以相對路徑的方式引用MySQL庫
此種方法相對於絕對路徑來說步驟多,操作複雜,但具有可移植性,即在另一臺計算機的相同開發環境下不需改動(或者做少許改動)就可以編譯運行。
在Build項目的源代碼目錄中創建include和lib文件夾,接着在lib文件夾中創建mysql文件夾,把位於MySQL根目錄的include文件夾複製到源代碼目錄的include文件夾中,並重命名爲mysql,把MySQL根目錄下lib文件夾中的libmysql.lib文件複製到源代碼目錄的lib/mysql文件夾中。
一般只鏈接libmysql.lib,其他庫暫時不必複製,當需要用到其他庫的時候,再添加至項目源代碼目錄的lib/mysql文件夾。
安裝MySQL之後,我的include和lib文件夾在E:\Program Files (x86)\mysql-5.7.19-win32,如下圖所示:
Visual Studio創建的Build項目位於E:\Microsoft Visual Studio Projects\Build\Build,如下圖所示:
接下來的操作與絕對路徑引用方式相似,打開項目屬性頁,在左邊依次展開屬性配置–>C/C++,點擊常規,於右邊的附加包含目錄填寫include/mysql。如下圖所示:
左邊再展開鏈接器,點擊常規,於右邊的附加庫目錄填寫lib/mysql。如下圖所示:
最後點擊確定,完成在Visual Studio開發環境以相對路徑引用MySQL庫的步驟。
測試配置
完成以上配置之後,在項目的源文件中編寫如下代碼,連接數據庫以驗證環境是否配置正確。
#include <stdio.h>
#include <conio.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
int main(int argc, char *argv[])
{
char host[] = "localhost";
char szDatabase[] = "mysql"; // 已有數據庫名
char username[] = "root";
char password[] = "eterfree"; // 管理員密碼
unsigned int port = 3306;
MYSQL *conn;
if ((conn = mysql_init((MYSQL*)0))
&& (mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk")==0)
&& mysql_real_connect(conn, host, username, password, szDatabase, port, NULL, 0))
printf("連接數據庫成功!\n");
else
{
printf("連接數據庫失敗!\n");
mysql_close(conn);
getch();
return -1;
}
mysql_close(conn);
getch();
return 0;
}
如果使用預編譯頭,需要在源文件最前面引用預編譯頭文件。
Visual Studio 2017之前,預編譯頭文件默認名稱爲stdafx.h。
#include "stdafx.h"
Visual Studio 2019的預編譯頭文件默認名稱爲pch.h。
#include "pch.h"
如果開發環境是Visual Studio 2017,需要關閉項目屬性的安全開發生命週期檢查。
進入項目的屬性頁,在左邊展開屬性配置,點擊C/C++,於右邊找到SDL檢查,選擇其選項的否(/sdl-),最後點擊確定。