2010-08-10 72 views
1

構建甚至最簡單的示例時,我會收到「未定義的引用'get_driver_instance'」:http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-complete-example-1.html。它在我的本地機器上構建並運行良好,但不會在服務器上構建 - 看起來像連接mysql庫問題。
這是我的構建CMD:
G ++ -o測試-Iinclude -llib -L在/ usr/lib64下/ mysql的main.cpp中未定義對'get_driver_instance'的引用

我不能在服務器上運行的本地內置二進制文件,因爲它是使用內置動態的'libmysqlclient.so'。我也嘗試在本地機器上安裝靜態libmysqlclient.a,但在我的/ usr/lib/mysql目錄中找不到'libmysqlclient.a'。我假設只有在服務器上運行它的方法是,如果我可以在本地機器上靜態構建它,或者我可以直接在服務器上編譯和構建它。我試過'sudo yum install mysql-devel',但我只看到libmysqlclient.so - 找不到'libmysqlclient.a'。有沒有辦法在我的本地Linux上安裝靜態mysqlclient或者是我的編譯cmd錯誤?我如何在服務器上構建源代碼?

回答

1

嘗試添加 '-lmysqlclient' 的命令,即:G ++ -o測試-Iinclude -llib -L在/ usr/lib64下/ mysql的-lmysqlclient的main.cpp

+0

嗨shuvalov,試過但沒有成功。好像我有一個與MySQL連接器/ C++頭文件的鏈接問題。這是我的文件夾結構: /include - > contains/cppconn和mysql_driver.h以及mysql_connection.h。 /lib - >包含已下載的/ lib目錄的mysqlC++ - 連接器。 /usr/lib64/mysql - >包含libmysqlclient – 2010-08-10 15:38:51

8

嘗試加入-lmysqlcppconn到鏈接器選項。我回答只是爲了有一個答案(即使這是2年前問:D)

+0

解決了我,thx! – 2013-03-28 01:32:59

+0

@Gerald:'g ++ -o test -Iinclude -Llib -L ​​/ usr/mysql -lmysqlcppconn temp.cpp'或'g ++ -o test -Iinclude -Llib -L ​​/ usr/mysql temp.cpp -lmysqlcppconn'哪一個是正確?兩者都給出了錯誤。第一個給出了與這個問題相同的結果,第二個給出了libmysqlcppconn.so的一些錯誤 – Catty 2013-09-06 14:33:58