`
colorado
  • 浏览: 54617 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C/C++ 连接 MySQL (GCC 版)

阅读更多
1、从 mysql-noinstall-5.1.30-win32.zip 包中解压 include, lib 两个目录到
使用C:\vcprojects\mysql-5.1.30 中

2、参考本博客《Windows XP下MinGW的安装与配置 》建好 Windows 下 GCC 的开发环境。

3、进入目录C:\vcprojects\mysql-5.1.30\lib\opt执行命令:
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a

生成gcc所需链接的mysql库 libmysql

4、在C:\vcprojects\learn目录下创建文件 visitsql.c (网友代码修改版)
#include <windows.h>
#include <iostream>
#include <mysql.h>
#include <stdio.h>

using namespace std;

int main()
{
    //connection params
    //FILE *file;
    char *host = "localhost";
    char *user = "root";
    char *pass = "12345";
    char *db = "mysql";
    
    //sock
    MYSQL *sock;
    MYSQL_RES *results;
    MYSQL_ROW record;
    sock = mysql_init(0);
    if (sock) 
        cout << "sock handle ok!" << endl;
    else 
    {
        cout << "sock handle failed!" << mysql_error(sock) << endl;
    }

    //connection
    if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0))
        cout << "connection ok!" << endl;
    else 
    {
        cout << "connection fail: " << mysql_error(sock) << endl;
    }
    mysql_set_character_set(sock,"gb2312");
    
    //connection character set
    cout << "connection character set: " << mysql_character_set_name(sock) << endl;

    //wait for posibility to check system/mysql sockets
    if(mysql_query(sock,"select * from user"))
    {
        cout<<"very good!"<<endl;                            
    }
    results=mysql_store_result(sock);
    printf("主机\t用户名\n");
    while(record = mysql_fetch_row(results))
    {
        printf("%s\t%s \n",record[0],record[1]);
    }
    mysql_free_result(results);
    //system("PAUSE");
    
    //closing connection
    mysql_close(sock);

    return EXIT_SUCCESS;
}



5、创建一个批处理文件 build.bat:
set MYSQL_CLIB=C:\vcprojects\mysql-5.1.30

set C_INCLUDE_PATH=%C_INCLUDE_PATH%;%MYSQL_CLIB%\include
set CPLUS_INCLUDE_PATH=%CPLUS_INCLUDE_PATH%;%MYSQL_CLIB%\include
set LIBRARY_PATH=%LIBRARY_PATH%;%MYSQL_CLIB%\lib\opt

g++ -o visitsql visitsql.c -llibmysql

执行该批处理,生成 visitsql.exe 执行该程序结果:
sock handle ok!
connection ok!
connection character set: gb2312
主机    用户名
localhost       root

6、比较visitsql 大小:
gcc 版          488KB
vc++ debug 版   40KB
vc++ release 版 10KB

7、另从网上摘抄
如果你的dlltool产生的libmysql.a是空文件的话,如下操作:
cd {mysql}/lib/opt
reimp libmysql.lib
dlltool.exe -d {mysql++}/libmysqlclient.def -e mysqlclient.exp -l mysqlclient.a -S as

备注:
mingw-utils-0.3.tar.gz
binutils-2.17.50-20060824-1.tar.gz

//reimp mysqlclient.lib
//ar rcs libmysqlclient.a *.obj
//rm *.obj

我对 gcc 了解不多,这段不知道何意,先记下来。
分享到:
评论

相关推荐

    C/C++进行mysql数据库开发所需的库文件及demo文件

    3. 配置编译器:在C/C++项目的编译选项中链接MySQL库,比如在GCC/G++中添加 `-lmysqlclient` 参数。 4. 头文件引用:在源码中包含必要的头文件,如 `#include &lt;mysql.h&gt;`。 接下来,demo文件通常会展示如何使用...

    c/c++完整视频教程(三)——–Linux服务器编程

    - **编译器选择与配置**:介绍GCC等常用C/C++编译器的安装与配置方法。 - **开发工具**:推荐并介绍如vim、emacs等编辑器的使用技巧。 - **调试工具**:如gdb等工具的基本用法,帮助开发者快速定位问题。 - **版本...

    eclipse配置C语言连接mysql环境

    ### Eclipse配置C语言连接MySQL环境详解 #### 一、引言 在Linux环境下,使用Eclipse集成开发环境(IDE)进行C/C++编程时,有时需要实现与MySQL数据库的交互功能。这通常涉及到如何在Eclipse中正确配置C/C++项目以支持...

    基于QT,C/C++,MySQL的学生档案管理系统-附详细备注和说明文档!

    - GCC版本:Linux 7.5.0 - MySQL版本:Linux 5.7.41-0ubuntu0.18.04.1 - Xshell版本:7.0 - Xftp版本:7.0 - 代码编辑器:VS Code 二、注意事项: - 由于数据中有中文字符,项目中的数据编码格式为UTF-8 - 项目...

    connect/c++说明文档

    ### MySQLConnector/C++ 使用说明书详解 #### 概述 MySQLConnector/C++ 是一款用于与 MySQL 数据库服务器进行通信的 C++ 接口。本手册详细介绍了如何安装、配置 MySQLConnector/C++,以及如何使用它来开发数据库...

    gcc中文手册 GNU Tools g++ c/c++编译器

    **GCC中文手册 GNU Tools - g++与C/C++编译器** GCC(GNU Compiler Collection),是由GNU项目开发的一套开源的、跨平台的编译工具集,它包含了针对多种编程语言(如C、C++、Objective-C、Fortran、Ada等)的编译器...

    【源码】mysql connector c++ 8.0.15 for linux

    MySQL Connector/C++是MySQL数据库的一款C++接口,它允许C++开发者通过标准的C++ API与MySQL数据库进行交互。此资源是MySQL Connector/C++ 8.0.15的源代码版本,专为Linux操作系统设计。这个压缩包包含了构建、理解...

    c++ ODB 连接 mysql

    本篇文章将深入探讨如何使用ODB在C++中连接并操作MySQL数据库。 首先,我们需要了解ODB的基本概念。ODB的核心功能是将C++类自动转换为数据库表,并将类的对象自动转换为数据库记录。它通过预编译的SQL语句和元数据...

    gcc-c++ 4.8.5(CentOS7内置版本安装包)

    1. gcc-4.8.5-39.el7.x86_64.rpm:这是GCC的主组件,包含了C、C++、Fortran等语言的编译器。 2. kernel-headers-3.10.0-1127.el7.x86_64.rpm:内核头文件,用于构建与Linux内核交互的驱动程序或系统调用的用户空间...

    C/C++.MFC.QT.linux.mysql.全套编程入门教学

    C语言是一种通用、面向过程的编程语言,而C++则是在C的基础上发展起来的一种面向对象的编程语言。 - **C语言**:学习C语言通常会从变量、数据类型、控制结构(如循环和条件语句)、函数、数组、指针等基础概念开始...

    Mysql的 C++环境.zip

    在描述中提到的“C++环境”可能包括了创建一个C++项目,配置编译器(例如GCC或Visual Studio),以及设置正确的链接器选项以使用MySQL Connector/C++。此外,开发者还需要确保他们的系统上已经安装了MySQL服务器,...

    CentOS7升级GCC版本到gcc 8.3.0,解决GLIBCXX-3.4.21 not found 问题

    解决/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found ...$ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib 编译: $ make 编译完成之后,安装: $ make install

    C/C++经典的销售信息管理源码

    9. **编译与链接**:在C/C++项目中,编译器(如GCC或Clang)将源代码转换为可执行文件,链接器则将编译后的对象文件与库文件合并。了解编译选项和链接过程对于优化程序性能和解决编译错误至关重要。 10. **测试与...

    Eclipse C 连接 mysql

    4. **配置Eclipse CDT项目**:在Eclipse中创建一个新的C/C++项目,然后在项目的属性设置中指定编译器(选择MinGW GCC),并链接到MySQL的静态库。你需要在项目的链接器设置中添加MySQL的库路径(如`libmysql.lib`)...

    mysql-connector-c-6.1.11-src

    MySQL Connector/C是MySQL数据库系统与C语言应用程序之间的一个接口,它允许C编程语言的应用程序连接到MySQL服务器并执行SQL查询。这个"mysql-connector-c-6.1.11-src"压缩包包含了MySQL Connector/C 6.1.11版本的源...

    centos 7 8安装mysql-5.7.29版本

    [root@localhost ~]# yum -y install libtool-ltdl-devel* make cmake perl perl-DBD* libaio.so.1* CPAN* *libaio* ncurses-devel bison ksh libtirpc* make gcc-c++ cmake bison-devel libaio libaio-devel rpcgen...

    MYSQL安装步骤-5.7.17

    - `gcc`, `gcc-c++`: 提供C和C++编译支持。 - `cmake`: 用于构建项目。 - `make`: 编译工具。 - `ncurses-devel`, `openssl-devel`, `bison`, `ncurses`, `chkconfig`, `lsof`: 这些是MySQL编译时所需的其他开发库及...

    mysql安装文档经验

    首先,安装MySQL通常需要一些依赖库,如ncurses-devel、gcc和gcc-c++。你可以使用`yum install`命令来安装这些必要的组件。例如: ```bash yum install ncurses-devel gcc gcc-c++ ``` 在确认依赖库已安装后,你可以...

Global site tag (gtag.js) - Google Analytics