[转]关于gcc编译使用mysql库的程序

有关c语言操作mysql数据库的源程序在这里就不列了,网上随手可以抓到一把。

我在这里遇到的问题是写好的程序编译不正确。

测试环境:
inter pentium dual CPU
fedora 6,linux kernel 2.6.18,32位平台
gcc 4.1.1-30
mysql-devel-5.0.22-2.1
这样的平台下我的mysql.h位于/usr/include/mysql/,相应的lib位于/usr/lib/mysql

研究后,发现下边的两种方法均可以编译通过
方法1:
gcc -c mysqltest.c
gcc -o mysqltest mysqltest.o -L/usr/lib/mysql -lmysqlclient
如果源程序的头文件写成#include <mysql.h>,第一步会提示错误,无法找到mysql.h,紧跟着一堆的函数未声明,因为mysql.h位于/usr/include/mysql/,所以应该写为#include <mysql/mysql.h>(其实写为#include <mysql.h>也可,后边说明),这样就可以了。
第二步中-L参数指明了库文件的位置,-l参数指明了要使用的库文件,这个库文件就是/usr/lib/mysql/libmysqlclient.so。
不要奇怪为什么参数中指明的是mysqlclient,而库文件实际上是libmysqlclient.so,其实gcc就是这样,-l参数后边紧跟的库名是实际的库名去掉lib和.so后的部分,所有的库名都是lib***.so,因为库文件的版本问题(我想是的),lib***.so大多是一个符号链接,就像这里的libmysqlclient.so实际上是同目录下的libmysqlclient.so.15.0.0的链接。
方法2:
gcc mysqltest.c -o mysqltest `mysql_config –cflags –libs`
注意不是单引号,数字键1左边的。
头文件无所谓写成#include <mysql.h>或者#include <mysql/mysql.h>,也无需指定需要的mysql库和路径。mysql_config会全盘负责,这个脚本文件在/usr/lib/mysql下,它包括了我刚才需要手动指定的信息。

无相关文章.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Linux 系统中,可以使用 GCC 编译器连接 MySQL。这可以通过以下步骤实现: 1. 安装 MySQL 头文件和文件: 在连接 MySQL 之前,需要安装 MySQL 头文件和文件。可以使用以下命令来安装这些文件: ``` sudo apt-get install libmysqlclient-dev ``` 2. 编写代码: 需要编写 C/C++ 代码来连接 MySQL。代码中应包含 MySQL 头文件,并使用 MySQL 函数来连接和操作 MySQL 数据。 3. 编译代码: 使用 GCC 编译编译代码。连接 MySQL 时,需要指定 MySQL 文件的位置。可以使用以下命令编译代码: ``` gcc -o [executable_name] [source_file] -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient ``` 4. 运行程序编译完成后,就可以运行程序来连接 MySQL 数据了。 希望这些信息能帮到你! ### 回答2: 在Linux上使用gcc连接MySQL有以下几个步骤: 1. 安装MySQL开发包:首先需要在Linux系统上安装MySQL的开发包,该开发包包含了使用MySQL的头文件和链接。可以使用以下命令安装: ```shell sudo apt-get install libmysqlclient-dev ``` 2. 编写代码:编写程序代码时需要包含MySQL的头文件。可以使用以下代码段作为示例: ```c #include <mysql/mysql.h> int main() { MYSQL *conn; conn = mysql_init(NULL); if (!conn) { fprintf(stderr, "Failed to initialize MySQL connection\n"); return 1; } if (!mysql_real_connect(conn, "localhost", "username", "password", NULL, 0, NULL, 0)) { fprintf(stderr, "Failed to connect to MySQL: Error: %s\n", mysql_error(conn)); mysql_close(conn); return 1; } printf("Connected to MySQL successfully\n"); mysql_close(conn); return 0; } ``` 在代码中需要根据实际情况修改`username`和`password`,分别为MySQL的用户名和密码。 3. 编译代码:使用gcc编译器将代码编译成可执行文件。可以使用以下命令编译代码: ```shell gcc -o myprogram myprogram.c `mysql_config --cflags --libs` ``` 这里的`myprogram`是生成的可执行文件名,`myprogram.c`是代码文件名。在编译过程中,需要使用`mysql_config --cflags --libs`命令获取MySQL编译选项和链接选项。 4. 运行程序编译成功后,可以直接运行生成的可执行文件,即可连接到MySQL数据。 通过以上步骤,就可以在Linux中使用gcc连接MySQL数据了。请注意,在实际使用中,还需要处理连接错误、执行SQL语句等操作,上述代码只是简单的示例。 ### 回答3: 要在Linux中使用GCC连接MySQL,需要进行以下步骤: 1. 首先,确保已经安装了MySQL数据MySQL的C语言客户端。如果没有安装,可以使用包管理器(如apt-get或yum)进行安装。 2. 创建一个新的C语言源文件,例如main.c。 3. 在源文件中包含mysql.h头文件,并使用gcc编译该源文件。命令如下: ``` gcc -o main main.c `mysql_config --cflags --libs` ``` 这将使用mysql_config命令提供的相关选项来链接MySQL的C语言客户端。 4. 编译成功后,可以运行生成的可执行文件,即可连接MySQL数据进行操作。 ``` ./main ``` 在源文件中,可以使用MySQL C语言客户端提供的函数来连接数据、执行SQL语句、获取查询结果等。 ``` // 示例代码 #include <mysql.h> #include <stdio.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "user", "password", "database", 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } if (mysql_query(conn, "SELECT * FROM table")) { fprintf(stderr, "%s\n", mysql_error(conn)); return 1; } res = mysql_use_result(conn); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s %s\n", row[0], row[1]); } mysql_free_result(res); mysql_close(conn); return 0; } ``` 在这个示例代码中,需要替换连接参数中的"localhost"、"user"、"password"和"database"为实际的数据服务器地址、用户名、密码和数据名。 这样,就可以使用GCC来连接MySQL并在Linux中进行数据操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值