2013-02-14 137 views
1

我想連接到mariaDB與C API https://downloads.mariadb.org/client-native/1.0.0/ 我在Windows 8上,正在使用Code :: Blocks 12.11編譯和編寫代碼。mariadb c api windows未定義的參考

  • 我已經把與.H-文件的文件夾中d:\ Programmering \ biblotek \ C \ MariaDB的-API \包括
  • 並與d的.lib-文件的文件夾:\ Programmering \ biblotek \ C \ MariaDB的-API \ lib中

所以:

\include has all the .h files 

\lib  has all the .lib files 

LINKING:我做了以下的鏈接庫:

- 連接的\包括文件夾中設置 - >編譯器... - >搜索目錄 - >編譯

- 連接>編譯器.. - - >搜索目錄 - 在設置的\ lib文件夾>鏈接

- 連接libmariadb.lib設置 - >編譯器。 - >鏈接設置

暫停...

- 連接\包括文件夾中項目 - >編譯選項... - >搜索目錄 - >編譯

- 連接\ LIB文件夾中項目 - >編譯選項... - >搜索目錄 - >鏈接

- 連接libmariadb.lib項目 - >編譯選項... - >鏈接設置

項目 - >構建選項...我有選定的編譯器「GNU GCC編譯器」

編譯器選項:-g

這是代碼:

#include <windows.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <C:\MinaProgram\Libs\sqlclientC\include\mysql.h> 
#include <my_global.h> 
#include <mysql.h> 

int main(void) { 

MYSQL mysql; 
MYSQL_ROW row; 
const char *aQuery = "SELECT * from livedata"; 

if(mysql_library_init(0, NULL, NULL)) { //Initiera bibliotek 
fprintf(stderr, "could not initialize MySQL library\n"); 
exit(1); 
} 
printf("AH!\n"); 
MYSQL mysql; 
mysql_init(&mysql); 

if(!mysql_real_connect(&mysql,"localhost","root","ooops","firsttest",0,NULL,0)) { //Anslut till databas, error meddelande om fel. 
fprintf(stderr, "Failed to connect to server!\n"); 
} 

/*GO CODE*/ 
if(!mysql_real_query(&mysql, aQuery, strlen(aQuery))) { 
fprintf(stderr, "Query error, kinda'\n"); 
} 

//mysql_fetch_row() 

/*CLOSURE */ 
mysql_close(&mysql); 
mysql_library_end(); 

return EXIT_SUCCESS; 
} 

我編譯,這是生成日誌響應:

||=== test, Release ===| 
obj\Release\main.o:main.c:(.text.startup+0x32)||undefined reference to `mysql_library_init'| 
obj\Release\main.o:main.c:(.text.startup+0x54)||undefined reference to `[email protected]'| 
obj\Release\main.o:main.c:(.text.startup+0x95)||undefined reference to `[email protected]'| 
obj\Release\main.o:main.c:(.text.startup+0xb4)||undefined reference to `[email protected]'| 
obj\Release\main.o:main.c:(.text.startup+0xeb)||undefined reference to `[email protected]'| 
obj\Release\main.o:main.c:(.text.startup+0xf1)||undefined reference to `mysql_library_end'| 
||=== Build finished: 6 errors, 0 warnings (0 minutes, 3 seconds) ===| 

我已搜查計算器和谷歌並沒有發現任何對我有用的東西,所以我希望詳細地發佈我是如何做錯的。

任何想法如何連接到mariaDB與C? (如何使這porgram工作)

親切的問候!

提示的地球生命時間:不要讓Windows 8

+0

這看起來像一個鏈接錯誤。什麼是構建(鏈接)命令? – alk 2013-02-14 17:12:32

+0

我使用Build - > Build(Ctrl + F9)。我沒有在鏈接像我張貼的代碼塊免除任何東西。我實際上不知道鏈接命令。這是一面旗幟還是我錯過了什麼? – Dave 2013-02-14 17:34:06

回答

0

鏈接的完整路徑d:\ Programmering \ biblotek \ C \ MariaDB的-API \ LIB \在項目libmariadb.lib - >構建選項... - >鏈接器設置。

我不知道鏈接「搜索目錄」的工作,我不能讓他們工作

Alernatively,你可以使用CMake的生成代碼:: Blocks的項目