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

來源:互聯網
上載者:User

標籤:

目前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下的庫檔案、例子工程了

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.