此項改造工作是為了將原本在叢集hpc01節點上的程式,搬到一台Windows機器上運行。
覺得VC太龐大,遂決定採用DEV-C++ 作為開發工具。自己是首次使用它。
一 從hpc01轉移到Windows單機平台時採用了DEV-C++,所遇到的問題
使用 DEV-C++ 時,需要在 Project options -> Parameters->linker
中添加
1. c:/Program Files/DEV-CPP/Lib/libws2-32.a(支援程式中的多線程功能)
2. {MySQL HOME}/lib/opt/libmysql.a (支援在程式中串連MySQL資料庫)
註:隨MySQL安裝包帶來的libmysql.dll(libmysql.dll)只支援Visual C++開發環境。要利用dlltool.exe(安裝DEV-C++時會出現在其安裝目錄的某一子目錄中)對libmysql.dll和libmysql.def兩個檔案進行加工產生libmysql.a。
Code
dlltool --input-def libmySQL.def --dllname libmySQL.dll --output-lib libmysql.a -k
libmysql.def的來源有二:一是來自MySQL的安裝目錄下的某處,第二是利用下面的命令(需下載Pexports工具 )
Code
pexports libmySQL.dll > libmySQL.def
另外,在偵錯工具時發現,需要把libmysql.dll放在Project的根目錄下。否則,會出現下面的
Code
Error connecting to database
Client does not support authentication protocol requested by server, consider upgrading MySQL client.
這種錯誤是由於client 與 server 端不匹配造成的。
二. 從hpc01轉移到Windows單機平台時DEV-C++中使用M一SQL時遇到的問題
需要下載mysql-connector-java-5.X.X.zip,解壓後把同名的 jar 檔案拷貝到{JAVA_HOME}/jre/lib/ext/目錄下。
否則出現下面的錯誤
Code
com.mysql.jdbc.Driver
表現在程式碼中執行到
Code
Class.forName("com.mysql.jdbc.Driver");
不能成功執行。