簡體   English   中英

MySQL Connector C ++ 64bit從Visual Studio 2012中的源代碼構建

[英]MySQL Connector C++ 64bit build from source in Visual Studio 2012

我正在嘗試從64位體系結構的Visual Studio 2012中的源代碼構建mySQL Connector C ++ 我知道這取決於一些boost頭文件和C連接器。 運行CMake會生成一個項目文件,但該項目文件無法編譯,因為可能需要對包含文件執行一些非常混亂的錯誤,以及更大的警告列表。 官方網站沒什么幫助。

有人可以列出成功編譯C ++連接器的所有步驟嗎?

為了構建它,您需要具備以下條件:

  1. 您需要安裝MySQL服務器或MySQL C連接器
  2. 已安裝Boost C ++庫或擁有源文件。 請注意,不需要構建boost,因為您只需要頭文件。
  3. 安裝CMake 安裝CMake時,它會詢問您是否希望它包含在PATH變量中,您應該選擇yes以便以后使用它更容易。

一旦有了所有三個可用,打開VS2012 x64 Native Tools命令提示符,並從MySQL C ++ Connector的源根目錄中,您需要發出以下命令:

set MYSQL_DIR=c:\PROGRA~1\MySQL\MYSQLC~1.1
cmake -G "Visual Studio 11 Win64" ^
      -DBOOST_ROOT:STRING=C:\Users\user\DOWNLO~1\BOOST_~1\BOOST_~1 ^
      -DMYSQL_LIB_DIR:STRING=c:\PROGRA~1\MySQL\MYSQLC~1.1\LIB
devenv.com MySQLCPPCONN.sln /build Release

第一個命令定義MYSQL_DIR變量,該變量指向MySQL服務器或MySQL C Connector的安裝。 第二個命令調用cmake來准備一個64位的VS項目。 MYSQL_LIB_DIR變量似乎存在問題並且沒有生成,因此我們需要手動定義它。 MYSQL_LIB_DIR的值為MYSQL_DIR ,以\\LIB結尾。 第三個命令是可選的,它將從命令提示符構建項目而不打開VS.

建議您使用DOS路徑作為變量。 為此,導航到要轉換為DOS路徑的目錄,並for %I in (.) do echo %~sI調用for %I in (.) do echo %~sI 它會為您提供轉換后的路徑。

這真是一項艱巨的任務,我花了很多時間搞清楚這一點。

這里有兩個問題:

  1. 他們提供的C ++ Connector和MySQL庫都是使用Visual Studio 2010生成的。因此我們不能在VS2012下使用它們(它會給出版本不匹配錯誤)

  2. 他們還沒有指定編譯這些庫的確切編譯器選項。 如果我們的編譯器設置不同,我們最終會遇到很多(特別是鏈接器相關的)錯誤。

考慮到這些事實,唯一的方法是為這些庫建立自己。 構建MySQL很快,但構建連接器並不復雜。

以下是我要分享的步驟。 在我的情況下,我想靜態地將這些庫與我的項目鏈接,因此我相應地構建了這些庫。 您可能希望根據需要在必要時進行相關更改。

在繼續執行這些步驟之前,請在您的系統上下載並安裝CMake。

構建MySQL服務器的步驟:

  1. 下載MySQL源代碼。 提取它們。 在命令提示符下進入解壓縮文件夾。

  2. 創建BLD forder

  3. 通過命令提示符進入BLD文件夾

  4.  cmake .. -G "Visual Studio 11 2012 Win64" 

    它將創建MySQL.sln

  5. 在Visual Studio中打開MySQL.sln並僅構建“mysqlclient”庫(因為只有這需要應用程序)

這將在我們項目中鏈接的mysql-5.6.24 \\ BLD \\ libmysql \\ <Configuration>文件夾中構建庫。

構建C ++連接器的步驟:

  1. 下載mysql-connector-c ++源代碼。 提取它。 在命令提示符下進入解壓縮文件夾。

  2. 創建BLD forder

  3. 通過命令提示符進入BLD文件夾

  4. 運行此命令(確保我們在此之前已經在發布和調試模式下構建了MySQL服務器。還要確保我們已經下載了Boost源代碼)

     cmake .. -DMYSQL_INCLUDE_DIR="..\\..\\mysql-5.6.24\\include" -DMYSQL_LIB_DIR:STRING="..\\mysql-5.6.24\\BLD\\libmysql\\Release" -DBOOST_ROOT:STRING="..\\Boost\\boost_1_54_0" -DMYSQL_CLIENT_STATIC_LINKING=1 -G "Visual Studio 11 2012 Win64" 

    它將創建MYSQLCPPCONN.sln

  5. 在Visual Studio中打開MYSQLCPPCONN.sln並更改'mysqlcppconn-static'項目:

    A.在C / C ++下 - >常規 - >附加包含目錄放置此項(適用於所有配置)

      nativeapi;..\\;..\\..\\;..\\cppconn;..\\..\\cppconn;..\\..\\..\\mysql-5.6.24\\include;..\\..\\..\\mysql-5.6.24\\BLD\\include;..\\..\\..\\Boost\\boost_1_54_0 

    B.在Code Genaration中,將運行時庫更改為多線程(調試或非調試取決於配置)和NOT DLL

    C.在Librarian下 - >所有選項將“附加選項”和“忽略特定默認庫”保留為空白(對於所有配置)

    D.在Librarian下 - >常規將“忽略特定默認庫”保留為空白(對於所有配置)

  6. 僅構建'mysqlcppconn-static'庫項目(因為只有應用程序才需要連接到MySQL服務器)

這將在我們項目中鏈接的mysql-connector-c ++ - 1.1.5 \\ BLD \\ driver \\ <Configuration>文件夾中生成庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM