心結:
為了在codeblocks下建立的C++工程中使用mysql,辛辛苦苦忙活了半個下午,終於長舒一口氣,搞定了,編譯成功。
其中不乏數次的成功於失敗的反覆。箇中滋味,只有讓我有擂頭頓足的衝動。
不過,還算上天公平,問題終究還是解決了。
趁著刻骨銘心的痛苦還沒有消失殆盡,趕快把過程記錄於此。權慰數小時之功,且備來時之用。
-----------------------------------------------------
記錄: 為使用mysql配置codeblocks下C++工程: goto project -> build options a. compiler settings tab -> other options: `mysql_config --cflags` b. linker settings tab -> other options: `mysql_config --libs` to get codecompletion you probably need to add the include dir to your project c. search directories tab -> compiler: /usr/include/mysql |
-----------------------------------------------------
問題:
為了弄明白mysql_config是什麼東西?
使用了mysql_config之後,為什麼就不需要lmysqlclient參數了?
帶著問題,查到了mysql_config的一些說明。轉載如下:
-----------------------------------------------------
轉載:
//轉載聲明:下面的文字來自:Java入門培訓網
# mysql_config提供了關於編譯MySQL用戶端以及將其串連到MySQL的有用資訊。 mysql_config支援下述選項: ? --cflags 編譯器標誌,用於尋找包含檔案,以及編譯libmysqlclient庫時所要使用的關鍵編譯器標誌和定義。 ? --include 編譯器選項,用於尋找MySQL包含檔案(注意,正常情況下應使用“?cflags”而不是該選項)。 ? --libmysqld-libs, ---embedded 與MySQL嵌入式伺服器進行連結所需的庫和選項。 ? --libs 與MySQL用戶端庫進行連結所需的庫和選項。 ? --libs_r 與安全執行緒MySQL用戶端庫進行連結所需的庫和選項。 ? --port 預設的TCP/IP連接埠號碼,配置MySQL時定義。 ? --socket 預設的Unix通訊端檔案,配置MySQL時定義。 ? --version 版本號碼以及MySQL分發版的版本。 如果未使用任何選項調用了mysql_config,將顯示它所支援的所有選項的列表,以及它們的值: shell> mysql_config Usage: /usr/local/mysql/bin/mysql_config [options] Options: --cflags [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro] --include [-I/usr/local/mysql/include/mysql] --libs [-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto] --libs_r [-L/usr/local/mysql/lib/mysql -lmysqlclient_r -lpthread -lz -lcrypt -lnsl -lm -lpthread] --socket [/tmp/mysql.sock] --port [3306] --version [4.0.16] --libmysqld-libs [-L/usr/local/mysql/lib/mysql -lmysqld -lpthread -lz -lcrypt -lnsl -lm -lpthread -lrt] 可以在命令列上使用mysql_config,並包含針對特定選項的值。例如,要想編譯MySQL用戶端程式, 可使用mysql_config,如下例所示: shell> CFG=/usr/local/mysql/bin/mysql_config shell> sh -c "gcc -o progname `$CFG --cflags` progname.c `$CFG --libs`" 以這種方式使用mysql_config時,務必在字元(‘`’)內調用它。 這樣,就能通知shell執行它,並將其輸出代入到環境命令中。 |