Visual Studio 2015編譯64位MySQL Connector/C++


目前MySQL Connector/C++的binary版本最高只支持VS2008,VS2015需要下載源碼自行編譯。

盡管MySQL手冊提供了信息,但在編譯過程中還是有不少細節需要注意。

 

CMAKE

官網下載最新的穩定版本

把bin目錄添加到環境變量PATH中

 

Boost

同樣到官網下載最新的穩定版本

 

MySQL客戶端庫

MySQL客戶端庫頭文件在MySQL目錄下的include目錄中

是的,編譯connector還需要下載一個MySQL Server

添加環境變量MYSQL_DIR,值為MySQL Server根目錄

cmake會到MYSQL_DIR/include下查找頭文件

 

下載MySQL connector/C++源碼

http://dev.mysql.com/downloads/connector/cpp/

在“select platform”中選擇“Source Code”

下載解壓

 

生成VS解決方案文件

開啟一個cmd窗口,進入解壓出來的MySQL Connector根目錄

 

執行

cmake -G "Visual Studio 14 2015 Win64" -DBOOST_ROOT:STRING=d:/bin/boost159

其中:

  1. Win64非常重要,否則生成的就是x86的解決方案。
  2. -DBOOST_ROOT:STRING聲明boost庫的根目錄,根據自己的配置設置它的值。

 

編譯MySQL Connector

在MySQL Connector根目錄,可以看到生成的.sln文件,雙擊打開

幾十個工程文件,除了庫還包括例子、測試等

 

在“解決方案資源管理器”窗口,找到 mysqlcppconn工程,右擊,選擇“生成”

失敗……

 

在“輸出”窗口,選擇輸出來源為“生成”,CTRF+F,搜索“error”,可以看到

>C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\stdio.h(1927): fatal error C1189: #error: Macro definition of snprintf conflicts with Standard Library function declaration

其前一行是

2>  d:\bin\mysql-connector-c++-1.1.6\driver\nativeapi/mysql_private_iface.h(48): note: 參見“snprintf”的前一個定義

雙擊這一行,定位到mysql_private_iface.h的48行,注釋掉

//#if ( defined(_WIN32) || defined(_WIN64) ) && !defined(snprintf)
//#define snprintf _snprintf
//#endif

 

在“輸出”窗口,選擇輸出來源為“生成”,點擊“全部消除”,再次生成工程

失敗……又一次

再看生成信息,同樣的問題

再次雙擊定位到m_config.h的516行,注釋之

//#define snprintf _snprintf

 

再生成

閃過幾屏的警告信息后,編譯成功

 

全部編譯

在“解決方案資源管理器”窗口,右擊解決方案, 選擇“生成解決方案”

最后成功十多個工程,失敗十多個工程,不用理會失敗的

這時候就得到VS2015下的庫文件、例子工程了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM