linux下c语言操作MYSQL编译报错 reference to `mysql_init'
编译链接时的错误如下:
/home/enpos/dbtest/dbtest.c:18: undefined reference to `mysql_init'
/home/enpos/dbtest/dbtest.c:18: undefined reference to `mysql_real_connect'
/home/enpos/dbtest/dbtest.c:24: undefined reference to `mysql_set_character_set'
/home/enpos/dbtest/dbtest.c:21: undefined reference to `mysql_error'
编译和连接程序
MySQL中有一个特殊的脚本,叫做mysql_config. 它会为你编译MySQL客户端,并连接到MySQL服务器提供有用的信息.你需要使用下面两个选项.
1. --libs 选项 - 连接MySQL客户端函数库所需要的库和选项.
$ mysql_config --libs
输出:
-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto
2. --cflags 选项 - 使用必要的include文件的选项等等.
$ mysql_config --cflags
输出:
-I/usr/include/mysql -g -pipe -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing
你需要将上面两个选项加入到对源文件的编译命令中. 所以,要编译上面的程序,要使用下面的命令:
$ gcc -o test $(mysql_config --cflags) test.c $(mysql_config --libs)
执行编译后的程序:
$ ./test