編譯時提示:
undefined reference to 'myaql_init'
undefined reference to 'myaql_real_connect'
undefined reference to 'myaql_close'
我最終的目的,是要編一個供其他程序調用,查詢數據庫的接口
我的代碼如下
#include <stdio.h>
#include "mysql.h"
#include "mysqlwrap.h"
#define host_name NULL //host to connect to (default=localhost)
#define user_name NULL //user name (default + your login name )
#define mypassword NULL //password (default=none)
#define port_num 0 //use default port
#define socket_name NULL //use default socket name
#define db_name NULL //database to use (default=none)
MYSQL *conn; /*ponter to connection handler */
int
main(int argc,char **argv)
{
conn=do_connect(host_name,user_name,mypassword,\
db_name,port_num,socket_name,0);
if(conn==NULL)
exit(1);
// do what i want to do here.
do_disconnect(conn);
exit(0);
}
----------------------------------
#ifndef __MYSQLWRAP_H
#define __MYSQLWRAP_H
void
print_error(MYSQL *conn,char *message)
{
fprintf(stderr,"%s\n",message);
if(conn!=NULL)
{
fprintf(stderr,"ERROR %u (%s)\n",mysql_errno(conn),mysql_error(conn));
}
}
MYSQL *
do_connect(char *host_name,char *user_name,char *password,char *db_name,\
unsigned int port_num,char *socket_name,unsigned int flags)
{
MYSQL *conn; /*pinter to connection handler */
conn=mysql_init (NULL); /*allocate,initialize connection handler */
if(conn==NULL)
{
print_error(NULL,"mysql_init() failed (probably out of memory)");
return(NULL);
}
#if defined(MYSQL_VERSION_ID) && MYSQL_VERSION_ID>=32200 /* 3.22 and up */
if(mysql_real_connect(conn,host_name,user_name,password,db_name,\
port_num,socket_name,flags)==NULL)
{
print_error(conn,"mysql_real_connect() failed");
return (NULL);
}
#else /*pre 3.22*/
if(mysql_real_connect(conn,host_name,user_name,password,db_name,\
port_num,socket_name,flags)==NULL)
{
print_error(conn,"mysql_real_connect() failed");
return (NULL);
}
if(db_name!=NULL) /* simulate effect of db_name parameter */
{
if(mysql_select_db(conn,db_name)!=0)
{
print_error(conn,"mysql_select_db() failed");
mysql_close(conn);
return(NULL);
}
}
#endif
return(conn); /*connection is established */
}
void
do_disconnect(MYSQL *conn)
{
mysql_close(conn);
}
#endif /* mysqlwrap.h */
-----------
紙上得來終覺淺,絕知此事要躬行。 --------一天到晚游泳的菜魚
|