mariadb c api windows undefined reference to

时间:2013-02-14 16:30:42

标签: c api windows-8 codeblocks undefined-reference

我正在尝试使用C API https://downloads.mariadb.org/client-native/1.0.0/连接到mariaDB 我在Windows 8上,正在使用Code :: Blocks 12.11来编译和编写代码。

  • 我已将.h文件放在 D:\ Programmering \ biblotek \ C \ mariaDB-API \ include
  • 以及 D:\ Programmering \ biblotek \ C \ mariaDB-API \ lib
  • 中包含.lib文件的文件夹

所以:

\include has all the .h files

\lib     has all the .lib files

链接:我已完成以下操作来链接库:

- 在设置 - >中关联 \ include 文件夹编译器.. - >搜索目录 - > 编译器

- 在设置 - >中关联 \ lib 文件夹编译器.. - >搜索目录 - > 链接器

设置 - >

-Linked libmariadb.lib 编译器.. - >链接器设置

...暂停

项目中的

-Linked \ include 文件夹 - >构建选项...... - >搜索目录 - > 编译器

项目中的

-Linked \ lib 文件夹 - >构建选项...... - >搜索目录 - > 链接器

项目 - >

-Linked 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 `mysql_init@4'|
obj\Release\main.o:main.c:(.text.startup+0x95)||undefined reference to `mysql_real_connect@32'|
obj\Release\main.o:main.c:(.text.startup+0xb4)||undefined reference to `mysql_real_query@12'|
obj\Release\main.o:main.c:(.text.startup+0xeb)||undefined reference to `mysql_close@4'|
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) ===|

我搜索了stackoverflow和谷歌,发现没有什么对我有用,所以我决定详细说明我做错了什么。

有关如何使用C连接到mariaDB的任何想法? (如何使这个porgram工作)

亲切的问候!

  

地球生命时间提示:不要使用Windows 8。

1 个答案:

答案 0 :(得分:0)

在项目中链接完整路径D:\ Programmering \ biblotek \ C \ mariaDB-API \ lib \ libmariadb.lib - &gt;构建选项...... - &gt;链接器设置。

我不确定链接器“搜索目录”是否正常工作,我无法让它们正常工作

Alernatively,您可以使用CMake生成Code :: Blocks项目