我在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:否 这样的文件或目录
我检查了包含文件。它们存在。
答案 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,请执行以下步骤:
/usr/include/mysql
以包含路径列表(GCC命令行中的-I
开关)。/usr/lib/x86_64-linux-gnu
添加到库搜索路径列表(GCC命令行中的-L
开关)pthread
和mysqlclient
库的链接(-l
在GCC命令行中切换)此外,您应该使用以下内容包含MySqlClient库:
#include <my_global.h>
#include <mysql.h>