C代码连接到mysql

时间:2015-10-27 12:44:22

标签: mysql c linux

我在Linux Ubuntu系统中有一个c代码。

我使用此命令安装库

$ sudo apt-get install libmysqlclient-dev

然后我使用测试代码检查安装。

#include <mysql/my_global.h>
#include <mysql/mysql.h>

int main(int argc, char **argv)
{
  printf("MySQL client version: %s\n", mysql_get_client_info());

  exit(0);
}

当我通过GCC在Netbean中构建代码时,它显示错误消息:

  

在mysql.c中包含的文件中:1:0:   /usr/include/mysql/my_global.h:77:23:致命错误:my_config.h:否   这样的文件或目录

我检查了包含文件。它们存在。

3 个答案:

答案 0 :(得分:2)

看起来您没有在编译命令中指定正确的包含路径。

MySQL不使用pkg-config,但有一个非常相似的mysql_config命令:

$ mysql_config --cflags
-I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing   -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing

通常情况下,你会在你的Makefile中使用它:

CFLAGS += $(shell mysql_config --cflags)
CXXFLAGS += $(shell mysql_config --cxxflags)
LDLIBS += $(shell mysql_config --libs)

答案 1 :(得分:1)

我发现当我按照以下方式构建代码时,它可以正常工作

$ mysql_config --libs
$ mysql_config --cflags
$ gcc -o output_file $(mysql_config --cflags) source_file.c $(mysql_config --libs)
$ ./output_file

答案 2 :(得分:0)

如果您使用的是IDE,请执行以下步骤:

  1. 添加/usr/include/mysql以包含路径列表(GCC命令行中的-I开关)。
  2. /usr/lib/x86_64-linux-gnu添加到库搜索路径列表(GCC命令行中的-L开关)
  3. 指向pthreadmysqlclient库的链接(-l在GCC命令行中切换)
  4. 此外,您应该使用以下内容包含MySqlClient库:

    #include <my_global.h>
    #include <mysql.h>