LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 903|回复: 1

无法编译MYSQL C代码,哪里出错了?是不是MYSQL没有装好?

[复制链接]
发表于 2006-11-9 16:38:37 | 显示全部楼层 |阅读模式
开始学习LINUX C编程,写了段查询MYSQL的程序老编不过去,不知道是哪儿的问题?在公司RH AS上就可以,那个上面MYSQL应该是系统自带的老版本的。

自己机器上MYSQL是mysql-max-5.0.27-linux-i686-glibc23.tar.gz

下面三段出错代码分别是三条命令的结果 ,代码第一行是命令。



  1. gcc -g  -o mycreate mycreate.c -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlclient
  2. /usr/local/mysql/lib/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':my_compress.c:(.text+0xc5):对‘compress’未定义的引用
  3. /usr/local/mysql/lib/libmysqlclient.a(my_compress.o): In function `my_uncompress':my_compress.c:(.text+0x14c):对‘uncompress’未定义的引用
  4. /usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::(anonymous namespace)::DiscreteLogWorkFactor(unsigned int)':dh.cpp:(.text+0x8c):对‘pow’未定义的引用
  5. :dh.cpp:(.text+0xa6):对‘log’未定义的引用
  6. :dh.cpp:(.text+0xae):对‘pow’未定义的引用
  7. /usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::DH::GenerateKeyPair(TaoCrypt::RandomNumberGenerator&, unsigned char*, unsigned char*)':dh.cpp:(.text+0x2d1):对‘pow’未定义的引用
  8. :dh.cpp:(.text+0x2ee):对‘log’未定义的引用
  9. :dh.cpp:(.text+0x2f6):对‘pow’未定义的引用
  10. /usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::DH::GeneratePrivate(TaoCrypt::RandomNumberGenerator&, unsigned char*)':dh.cpp:(.text+0x488):对‘pow’未定义的引用
  11. :dh.cpp:(.text+0x4a9):对‘log’未定义的引用
  12. :dh.cpp:(.text+0x4b1):对‘pow’未定义的引用
  13. collect2: ld returned 1 exit status

复制代码



  1. gcc -g  -o mycreate mycreate.c -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlclient -lz
  2. /usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::(anonymous namespace)::DiscreteLogWorkFactor(unsigned int)':dh.cpp:(.text+0x8c):对‘pow’未定义的引用
  3. :dh.cpp:(.text+0xa6):对‘log’未定义的引用
  4. :dh.cpp:(.text+0xae):对‘pow’未定义的引用
  5. /usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::DH::GenerateKeyPair(TaoCrypt::RandomNumberGenerator&, unsigned char*, unsigned char*)':dh.cpp:(.text+0x2d1):对‘pow’未定义的引用
  6. :dh.cpp:(.text+0x2ee):对‘log’未定义的引用
  7. :dh.cpp:(.text+0x2f6):对‘pow’未定义的引用
  8. /usr/local/mysql/lib/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::DH::GeneratePrivate(TaoCrypt::RandomNumberGenerator&, unsigned char*)':dh.cpp:(.text+0x488):对‘pow’未定义的引用
  9. :dh.cpp:(.text+0x4a9):对‘log’未定义的引用
  10. :dh.cpp:(.text+0x4b1):对‘pow’未定义的引用
  11. collect2: ld returned 1 exit status

复制代码



  1. gcc -g  -o mycreate mycreate.c -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlclient -lm
  2. /usr/local/mysql/lib/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':my_compress.c:(.text+0xc5):对‘compress’未定义的引用
  3. /usr/local/mysql/lib/libmysqlclient.a(my_compress.o): In function `my_uncompress':my_compress.c:(.text+0x14c):对‘uncompress’未定义的引用
  4. collect2: ld returned 1 exit status
复制代码




程序代码如下:



  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. //#include "mysql/mysql.h"
  5. #include "mysql.h"

  6. int main()
  7. {
  8.         MYSQL *ssock;
  9.         char sql[500];
  10.         MYSQL_RES *sel_result = NULL;
  11.         int i;
  12.        
  13.         ssock = (MYSQL *)malloc(sizeof(MYSQL));
  14.         mysql_init(ssock);
  15.         if (!(mysql_real_connect(ssock,"localhost","root","eaps0543","test_woody",0,NULL,0)))
  16.         {
  17.                 printf("Cannot connect to the mysql server.Error: %s\n",mysql_error(ssock));
  18.                 exit(-1);
  19.         }
  20.        
  21.         sprintf(sql,"SELECT * FROM girls LIMIT 10");
  22.        
  23.         i = mysql_real_query(ssock,sql,strlen(sql));
  24.        
  25.         sel_result = mysql_store_result(ssock);
  26.        
  27.         while(sel_result->data_cursor)
  28.         {
  29.                 printf("Name:%10s,age:%d\n",
  30.                                 sel_result->data_cursor->data[1],
  31.                                 atoi(sel_result->data_cursor->data[2]));
  32.                
  33.                 sel_result->data_cursor = sel_result->data_cursor->next;
  34.         }
  35.        
  36.         printf("\n\t\t%d records affected\n",sel_result->row_count);
  37.         mysql_free_result(sel_result);
  38.         return 0;
  39.        
  40. }


复制代码
 楼主| 发表于 2006-11-9 17:47:36 | 显示全部楼层
已解决,安装了libmysqlclient15-dev包。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表