没有usr local mysql_安装好MySQL后没有/usr/local/mysql 目录

源程序如下:

#include

#include

#include

#include "sql.h"

#include "sqlext.h"

void

check_return (RETCODE rc,

HENV henv,

HDBC hdbc,

HSTMT hstmt )

{

UCHAR state_str [SQL_MAX_MESSAGE_LENGTH];

SDWORD native_error;

UCHAR  error_msg [SQL_MAX_MESSAGE_LENGTH];

SWORD  error_msg_avail = SQL_MAX_MESSAGE_LENGTH - 1;

SWORD  error_msg_len;

RETCODE local_rc;

if (rc != SQL_ERROR && rc != SQL_SUCCESS_WITH_INFO )

{

return;

}

local_rc = SQL_Error (henv,hdbc,hstmt,state_str,&native_error,error_msg,error_msg_avail,&error_msg_len);

if (local_rc != SQL_SUCCESS && rc !=SQL_SUCCESS_WITH_INFO)

{

fprintf(stderr,"Uninterpretable error; exiting n");

exit (EXIT_FAILURE);

}

if (rc == SQL_SUCCESS_WITH_INFO)

{

fprintf(stderr,"Fatal Error %s: %sn", state_str,error_msg);

return;

}

fprintf(stderr,"Fatal Error %s: %sn",state_str,error_msg);

exit (EXIT_FAILURE);

}

/*----------------------------------------------------------------------*/

int main (void)

{

HENV henv = SQL_NULL_HENV;

HDBC hdbc = SQL_NULL_HDBC;

HSTMT hstmt = SQL_NULL_HSTMT;

RETCODE rc;

char buf[257];

short buflen;

printf ("Initialize the environment structure.n");

SQLAllocEnv (&henv);

printf ("Initialize the connection structure.n");

SQLAllocConnect (henv,&hdbc);

printf("Load the ODBC driver.n");

rc = SQLDriverConnect (hdbc,0,"DSN=baseball;UID=myloginWD=mypassword",SQL_NTS,(UCHAR*) buf,sizeof (buf),&buflen,SQL_DRIVER_COMPLETE);

check_return (rc,henv,hdbc,hstmt);

printf ("Initialize the statement structure.n");

SQLAllocStmt (hdbc,&hstmt);

/*   now do something*/

printf ("Creat table table "foo".n");

rc = SQLExecdirect (hstmt,"CREATE TABLE foo (bar INTEGER)", SQL_NTS);

check_return (rc, henv, hdbc, hstmt);

printf ("Insert values into table "foo".n");

rc = SQLExecdirect (hstmt,"INSERT INTO foo(bar) VALUES (1)", SQL_NTS);

check_return (rc, henv, hdbc, hstmt);

rc = SQLExecdirect (hstmt,"INSERT INTO foo(bar) VALUES (2)", SQL_NTS);

check_return (rc, henv, hdbc, hstmt);

rc = SQLExecdirect (hstmt,"INSERT INTO foo(bar) VALUES (3)", SQL_NTS);

check_return (rc, henv, hdbc, hstmt);

printf ("Drop table "foo".n");

rc = SQLExecDirect (hstmt, "DROP TABLE foo", SQL_NTS);

check_return (rc,henv,hdbc,hstmt);

/*  We're done:free resources and exit*/

printf ("Free the statement handle.n");

SQLFreeStmt (hstmt,SQL_DROP);

printf ("Disconnect from the data source.n");

SQLDisconnect (hdbc);

printf ("Free the connection structure.n");

SQLFreeConnect (hdbc);

printf ("Free the environment structure.n");

SQLFreeEnv (henv);

printf ("Goodbye!n");

exit (EXIT_SUCCESS);

}

我的程序编译、连接的结果是:

[root@localhost database_experiment]# gcc odbc.c

/tmp/ccldHxyK.o(.text+0x5a): In function `check_return':

: undefined reference to `SQLError'

/tmp/ccldHxyK.o(.text+0x130): In function `main':

: undefined reference to `SQLAllocEnv'

/tmp/ccldHxyK.o(.text+0x152): In function `main':

: undefined reference to `SQLAllocConnect'

/tmp/ccldHxyK.o(.text+0x18b): In function `main':

: undefined reference to `SQLDriverConnect'

/tmp/ccldHxyK.o(.text+0x1c7): In function `main':

: undefined reference to `SQLAllocStmt'

/tmp/ccldHxyK.o(.text+0x1ec): In function `main':

: undefined reference to `SQLExecdirect'

/tmp/ccldHxyK.o(.text+0x22b): In function `main':

: undefined reference to `SQLExecdirect'

/tmp/ccldHxyK.o(.text+0x25a): In function `main':

: undefined reference to `SQLExecdirect'

/tmp/ccldHxyK.o(.text+0x289): In function `main':

: undefined reference to `SQLExecdirect'

/tmp/ccldHxyK.o(.text+0x2c8): In function `main':

: undefined reference to `SQLExecDirect'

/tmp/ccldHxyK.o(.text+0x302): In function `main':

: undefined reference to `SQLFreeStmt'

/tmp/ccldHxyK.o(.text+0x320): In function `main':

: undefined reference to `SQLDisconnect'

/tmp/ccldHxyK.o(.text+0x33e): In function `main':

: undefined reference to `SQLFreeConnect'

/tmp/ccldHxyK.o(.text+0x35c): In function `main':

: undefined reference to `SQLFreeEnv'

collect2: ld returned 1 exit status

网上说要执行

ln -s /usr/local/mysql/lib /usr/lib/mysql

ln -s /usr/local/mysql/include /usr/include/mysql

然后执行

gcc -g connect_db.c -L/usr/lib/mysql -lmysqlclient -lz

但是我发现没有/usr/local/mysql/lib 这个目录,是什么原因,应该怎么办?

|

你的mysql是不是装到/usr/share下面去了?

|

一般都是再/usr/local/include/mysql

|

其实你安装的时候可以指定相应的安装目录

./congfigure --prefix =/usr/local/mysql

不过也没关系

你在编译的时候把库和头文件指定到你安装目录当中就可以了!

gcc   -g   connect_db.c-I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值