最近工程需要用到Mysql Connector C++的庫,從官網上下載的mysql-connector-c++-noinstall-1.1.9-win32版本,鏈接后程序可以執行,但是到了std::string相關的部分馬上報錯,查閱官網時發現對開發者的提示是,最好下載源碼使用工程同一配置編譯鏈接器的庫;
准備工作:
1、下載Cmake cmake-3.8.1-win32-x86.msi 用於生成vs的project文件
2、下載boost庫 boost_1_64_0.zip 用於輔助庫,不知道哪個版本開始這個MySQL的connector的編譯就需要使用到boost庫了
3、准備好安裝MySQL的機器上生成的include/lib目錄,通常在C:\Program Files\MySQL\MySQL Server 5.7這個路徑下,具體版本具體看。我機器用的是X64的版本。
4、下載MySQL connector C++的源代碼,mysql-connector-c++-1.1.9.zip
開始:
1、boost庫解壓后即可,MySQL路徑備好,打開Cmake GUI, 選取源碼路徑為MySQL connector C++解壓后的根目錄,選取該目錄或者新建一個文件夾作為vs工程文件的生成路徑
2、添加入口點(Entry)
MYSQL_INCLUDE_DIR:STRING=MySQL的機器上生成的include
MYSQL_LIB:STRING=**\mysql\lib\libmysql.lib
BOOST_ROOT:STRING=**\boost_1_64_0
3、選擇編譯器,因為我機器安裝的是MySQL的X64版本,此處也要生成64位版本的庫,選擇“Visual Studio 14 2015 Win64”,在指定的工程路徑下有對應的MYSQLCPPCONN.sln解決方案,打開后選擇項目mysqlcppconn進行編譯,得到動態庫,mysqlcppconn_static生成靜態庫
至此就完成了X64下的MySQL connector C++的編譯工作了。
32位的區別在於選擇的編譯器為"Visual Studio 14 2015"
ps:
其實我很想用命令行的CMake來生成,可是,-G的參數識別不出來帶Win64的編譯器,沒辦法就只能使用GUI了~
當編譯完成后,在測試Connector C++的代碼運行時提示應用程序無法加載 0xc000007b啥的這種錯誤,請更換libmysql.dll庫文件為標准Connector C中的dll文件,可能與服務器安裝目錄下的版本不一致導致。
