linux环境下写C++操作mysql

Posted wanghao-boke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux环境下写C++操作mysql相关的知识,希望对你有一定的参考价值。

/*****************
connect.cpp
g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient
****************/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"mysql.h"


class CMysqlInterface

    public:
        CMysqlInterface();
        ~CMysqlInterface();
        
        void mysqlLibInit();
        void mysqlLibDestroy();
        int Connect();
        int Close();

    private:
        MYSQL *m_mysqlPtr;
;

int main()

    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();



int CMysqlInterface::Close()

    int iRet = 0;
    
    if(NULL != m_mysqlPtr)
    
        mysql_close(m_mysqlPtr);
        m_mysqlPtr = NULL;
    
    return iRet;


void CMysqlInterface::mysqlLibDestroy()

    mysql_library_end();


int CMysqlInterface::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;
    
    return iRet;

 

[email protected]:~/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

 

输出结果:

[email protected]:~/wangqinghe/MySql/20190621/02$ g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient

[email protected]:~/wangqinghe/MySql/20190621/02$ ./connect

version 1.1

CMysqlInterface

Connect

mysql_real_connect success

 

以上是关于linux环境下写C++操作mysql的主要内容,如果未能解决你的问题,请参考以下文章

MysqlLinux环境安装Mysql

MYSQLLINUX安装MYSQL

Windows环境下写Linux sh脚本的一次挖坑和填坑

linux下写的SD驱动,android怎么调用?

mysqllinux下安装mysql

MySqllinux下,设置mysql表名忽略大小写