编译操作mysql数据库的C程序时的连接库错误

以下为使用C API写的操作数据库school的程序,保存文件名为mysql.c。

#include <stdio.h>

#include <string.h>

#include <mysql.h>

int main()

{

 MYSQL mysql;

 MYSQL_RES *res;

 MYSQL_ROW row;

 char sql[50];

 int t;

 sprintf(sql,"select*from teacher");

 mysql_init(&mysql); 

 if(!mysql_real_connect(&mysql,"localhost","root","","school",0,NULL,0))

         printf("/nconnecting database error: %s/n",mysql_error(&mysql));

 else

         printf("/nconnecting database success!/n");

 t= mysql_real_query(& mysql, sql, (unsigned int)strlen(sql));

 if(t)

         printf("query error: %s/n",mysql_error(&mysql));

 else

 {

         res = mysql_store_result(&mysql);

         while(row = mysql_fetch_row(res))

         {

                for(t = 0; t < mysql_num_fields(res); t++)

                              printf("%s",row[t]);

                 printf("/n");

         }

 }

 printf("release the space of the result set.../n");

 mysql_free_result(res);

 mysql_close(&mysql); 

 printf("sql errror! %s/n",mysql_error(&mysql)); 

 return 0;

}

我使用下列命令进行编译:

gcc –o mysql mysql.c -I /root/Software/mysql/include/mysql -L /usr/lib –lmysqlclient,

但是却出现了连接错误,错误代码如下:

/usr/bin/ld: cannot find -lmysqlclient
collect2: ld returned 1 exit status。

然后我改变了编译的参数,使用如下命令进行编译:

gcc -o mysql mysql.c /usr/lib/mysql/libmysqlclient.so.15  -I  /root/Software/mysql/include/mysql
也就是说把库文件当做源文件使用就可以了。

我也不知道是什么原因,按理说第一种方法是可以的。我在网上看到有人说可能是mysql的库做的有问题。

你可能感兴趣的:(sql,c,mysql,数据库,database,query)