数据库
首页 > 数据库> > C++--mysql相关配置

C++--mysql相关配置

作者:互联网

 

clion环境配置:

windows下:

1. 在CMakeLists.txt里面添加 mysql的include目录和lib目录

cmake_minimum_required(VERSION 3.15)
project(pro1)

include_directories(D:\\CodeEnv\\mysql\\mysql-5.6.42\\include)    //指定头文件目录
link_directories(D:\\CodeEnv\\mysql\\mysql-5.6.42\\lib)           //指定链接库目录
link_libraries(libmysql.dll)                                          //指定链接库下具体哪个库
set(CMAKE_CXX_STANDARD 11)

add_executable(pro1 main.cpp mysqlTest.cpp mysqlTest.h)

target_link_libraries(pro1 libmysql.dll)                             //自己添加

 

  可以添加本地安装的mysql的对应路径来引入头文件

  也可以在 https://dev.mysql.com/downloads/connector/cpp/  下载C++ connector,解压后将里面的include和lib目录添加到上面的cmakelists.txt

 

  【lib目录下的libmysql.lib文件很小,而libmysql.dll文件很大,可能lib文件里面只有相应函数的声明,而实际的实现在dll文件里,因此上面要指定动态库dll文件】

 

  配置不对会出现的错误:

  (1)运行时找不到动态库

      返回错误:-1073741515 (0xC0000135)

      解决办法:①windows下默认去system32路径下去找动态库,可将 libmysql.lib和libmysql.dll放到该目录下去(实测只需要dll文件)

        ②运行时指定环境变量为mysql的lib目录:

          

 

 

   (2)运行时错误

     返回:-1073741819 (0xC0000005)

     原因:指定链接库时没写成  libmysql.dll ,只写了 libmysql,具体原因未知

 

2. 例子

  file.cpp

#include <winsock.h> //这个不加,编译不通过
#include "mysql.h"
void TestMysql()
{

    MYSQL *my;
   // mysql_library_init(0,NULL,NULL);  //不加没问题
    my=mysql_init(NULL);
    char ip[]="127.0.0.1";
    char user[]="root";
    char pass[]="123";
    char database[]="testx";
    int port = 3306;

    if(mysql_real_connect(my,ip,user,pass,database,port,NULL,0)) {
        cout<<"connect success"<<endl;
    }
    else {
        cout<<"connect failed"<<endl;
        return;
    }

    MYSQL_RES* result;
    MYSQL_ROW row;
    int num,i;

    if((mysql_query(my,"select * from person")) == 0) {
        cout<<"query success"<<endl;
    }
    result = mysql_store_result(my);
    num = mysql_num_fields(result);
    while(row=mysql_fetch_row(result)) {
        for(i=0;i<num;i++) {
            cout<<row[i]<<" ";
        }
        cout<<endl;
    }
    mysql_free_result(result);
    mysql_close(my);
}

 

linux环境下:

 

 

 

 

----------------------------------------------------------------------

vs

1.

 

标签:lib,配置,C++,dll,libmysql,mysql,include,目录
来源: https://www.cnblogs.com/taoXiang/p/12815088.html