本文共 1957 字,大约阅读时间需要 6 分钟。
/*****************
connect.cpp
g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient
****************/#include#include#include#include"mysql.h"
classCMysqlInterface
{public:
CMysqlInterface();~CMysqlInterface();voidmysqlLibInit();voidmysqlLibDestroy();intConnect();intClose();private:
MYSQL*m_mysqlPtr;
};intmain()
{
printf("version 1.1\n");int iRet = -1;
CMysqlInterface MysqlObj;
iRet=MysqlObj.Connect();if(0 ==iRet)
{
printf("mysql_real_connect success\n");
}else{
printf("mysql_real_connect failed\n");
}return 0;
}
CMysqlInterface::CMysqlInterface()
{
printf("CMysqlInterface\n");
m_mysqlPtr=NULL;
m_mysqlPtr=mysql_init(NULL);
}
CMysqlInterface::~CMysqlInterface()
{
Close();
}intCMysqlInterface::Close()
{int iRet = 0;if(NULL !=m_mysqlPtr)
{
mysql_close(m_mysqlPtr);
m_mysqlPtr=NULL;
}returniRet;
}voidCMysqlInterface::mysqlLibDestroy()
{
mysql_library_end();
}intCMysqlInterface::Connect()
{
printf("Connect\n");int iRet = -1;
m_mysqlPtr= mysql_real_connect(m_mysqlPtr,"localhost","root","csql","child",0,NULL,0);if(m_mysqlPtr)
{
iRet= 0;
}returniRet;
}
exbot@ubuntu:~/wangqinghe/MySql/20190621/01$ g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -Imysqlclient
/tmp/cceJyiND.o:在函数‘CMysqlInterface::CMysqlInterface()’中:
connect.cpp:(.text+0xaf):对‘mysql_init’未定义的引用
/tmp/cceJyiND.o:在函数‘CMysqlInterface::Close()’中:
connect.cpp:(.text+0x100):对‘mysql_close’未定义的引用
/tmp/cceJyiND.o:在函数‘CMysqlInterface::mysqlLibDestroy()’中:
connect.cpp:(.text+0x121):对‘mysql_server_end’未定义的引用
/tmp/cceJyiND.o:在函数‘CMysqlInterface::Connect()’中:
connect.cpp:(.text+0x17c):对‘mysql_real_connect’未定义的引用
collect2: error: ld returned 1 exit status
这个问题是因为连接命令出了错误 后面跟的应该是 -l 而不是-L
输出结果:
exbot@ubuntu:~/wangqinghe/MySql/20190621/02$ g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient
exbot@ubuntu:~/wangqinghe/MySql/20190621/02$ ./connect
version 1.1
CMysqlInterface
Connect
mysql_real_connect success
转载地址:http://okima.baihongyu.com/