C/C++操作MYSQL数据库可以做成跨平台的吗

我要开发一个跨平台的MYSQL数据库接口,想知道用C语言代码或者C++代码能不能实现,在LINUX和WINDOWS下都能运行的,有谁知道麻烦帮一下 谢谢

c++

8个回答

可以使用条件编译,在源代码层面上跨平台。也就是每个平台产生对应的最终可执行文件,但是只维护一套源代码。两个平台不同的代码用条件编译放在不同的地方。

这完全可以的,我建议你参考一下luasql的代码,luasql就是跨平台的而且开源,使用lua能跨平台访问mysql

mysql有原生c api,可以跨平台,你可以i基于它封装一下。

这个问题 主要看 MYSQL 的跨平台的支持如何,它支持哪种语言用于跨平台,你就使用这种语言。
建议你去 MYSQL 的官网看看。

完全没问题的,只需要自己封装一下就可以了。参考:http://dev.mysql.com/doc/refman/5.6/en/c-api.html

可以的。sql提供接口

代码也许可以一份,但是可执行文件应该分别在不同的平台上编译吧?

c++的跨平台连接数据库,基本上是做了封装而已,针对不同的平台和数据库,都需要我们进行其他的配置以及安装相应的数据库驱动和桥来连接,所以说如果一套代码可以分别在linux windows 上运行,那么运行环境呢,是否需要一致?
答案是必须的,因为linux和windows的运行环境存在差异性,所以我门只能考虑在一套代码上进行不同的封装来达到预计效果,这只是理论效果,未实践,如果有意愿可以参考下ODB(C++)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C语言的跨平台性及库的跨平台性研究
啥?C语言是跨平台的?大家刚学C语言的时候,都知道C是不跨平台的。C的跨平台性从何说起?       呵呵,看官莫急,听Jeremiah徐徐道来。       本篇博客所讨论的跨平台性,是比较狭义的,主要是讨论跨Windows和Linux这两个最流行的操作系统,确切的说,是跨VC和gcc这两大编译器。在这也只是浅谈一下,不做太深入的研究。       主要内容如
为什么Java可以跨平台c/c++不可以吗
Java可以跨平台,那C#、C、C++呢?请往下看
C++语言为什么跨平台?
现在主流的手机平台很多,比如:Windows开发的Windows Phone(WP-"X"), Apple(苹果公司)开发的ios,Google(谷歌)开发的android,等等! 而这些操作系统平台的语言支持大同小异; 1、Windows Phone上支持VB,C#,C,C++; 2、iOS上支持Object-c,C,C++; 3、android上支持java,C,C+
跨平台的动态链接库的调用
一、三种库函数的链接方式 用过C语言的都知道库函数的重要:我们将功能比较独立的部分做成一个个函数,供我们复用。最终对库函数的引用有3种方式: 方式 链接时刻 库指定时刻 特点 静态链接 编译时 编译时 编译时检查链接错误,编入运行程序(运行程序独立) 动态链接 运行时 编译时检查链接错误,运行时调入依赖库 运行时 运行
c语言操作mysql和数据库基本操作
第一部分c语言操作数据库1、连接 MYSQL *mysql mysql=mysql_init(NULL);//初始化一下 mysql_real_connect(mysql,HOST,USER,PASSWD,TESTDB,0,NULL,0) ①HOST是主机名 ②user是ID ③passwd是密码 ④TESTDB是数据库的名称2、信息错误处理 mysql_error(mysql)3
串口通信跨平台
mac 下模拟串口 #! /usr/bin/env python #coding=utf-8 import pty import os import select import time def mkpty():     #     master1, slave = pty.openpty()     slaveName1 = os.ttyname(sl
跨平台多线程(包括线程、锁的跨平台封装)
压缩包里面有一个工程,里面封装了可跨平台的线程类和锁,为你在编写多线程时,随时方便使用!
谈跨平台C++动态连接库的实现
  我对与solaris ,hp ,windows这三个平台的动态库的实现,进行了探索,对于soloaris,hp等Unix平台来讲,主要是make文件的制作,而Windows下还需要对类头进行修饰.   本列主要实现了一个动态库和一个调用动态库的运行程序,动态库包括mytime.h ,mytime.cpp , 在windows下还需要dllt1.cpp ,这个包含动态库的DllMain入口函数,
跨平台多线程库pthread
【原创文章,转载请保留或注明出处:】 1.简介 POSⅨ thread 简称为pthread,Posix线程是一个POSⅨ标准线程,该标准定义内部API创建和操纵线程。 线程库实行了POSIX线程标准通常称为pthreads.POSIX线程具有很好的可移植的性,使用pthread编写的代码可运行于Solaris、FreeBSD、Linux 等平台,Windows平台亦有pthread-win
用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作
  很多人用到MySQL来开发一些项目,有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,Michael以前用PHP开发的多个项目中就使用了C语言编写的这类接口,然后再编译到php里面,供php脚本直接使用,这方面的话题就不多说了,下面主要说一下在Linux下如何用C语言连接M
C/C++跨平台程序注意
判断操作系统 通过使用内置的宏,可以进行
跨平台C、C++代码注意的事项
在我们的开发中,跨平台的需求越来越强烈,如何保持C/C++代码能在多个平台上编译,是一个比较值得研究的问题。关于跨平台的文章网上很多,跨平台的库网上也很多。那么我从自己的跨平台开发经验谈一谈自己的心得,希望对大家能够起到一定的作用。主要涉及到Windows和linux两个操作系统。1、  关于路径和头文件路径分隔符的问题在Windows中,正斜杠和反斜杠都可以,但是在Linux中,只能是/。在Wi
用C++进行跨平台和可移植开发的注意事项
概述   今天聊聊C++的可移植性问题。如果你平时使用C++进行开发,并且你对C++的可移植性问题不是非常清楚,那么我建议你看看这个系列。即使你目前没有跨平台开发的需要,了解可移植性方面的知识对你还是很有帮助的。   C++的可移植性这个话题很大,包括了编译器、操作系统、硬件体系等很多方面,每一个方面都有很多内容。鉴于本人能力、精力都有限,只能介绍每一个方面最容易碰到的问题,供大伙儿参考。
跨平台C、C++代码注意的事项及如何编写跨平台的C/C++代码
在我们的开发中,跨平台的需求越来越强烈,如何保持C/C++代码能在多个平台上编译,是一个比较值得研究的问题。关于跨平台的文章网上很多,跨平台的库网上也很多。那么我从自己的跨平台开发经验谈一谈自己的心得,希望对大家能够起到一定的作用。主要涉及到Windows和linux两个操作系统。 1、  关于路径和头文件路径分隔符的问题 在Windows中,正斜杠和反斜杠都可以,但是在Linux中,
c语言编译流程(c语言是如何变成可执行文件的)
c语言编译流程(c语言是如何变成可执行文件的) 解释:源代码会经过预编译--->编译---->汇编----->连接几个步骤最终生成可执行文件.1.预编译,把源代码中的宏展开并把包含的文件的源代码插入程序的源代码中.2.编译,把源代码编译成二进制的目标文件.但是此时目标文件还是不可执行的.3.汇编,这一步主要是处理源代码中的汇编代码4.连接,把目标代码和二进制的库文件以及其它内容合并成最
跨平台C语言开源库总结
提供跨平台的C语言库,各类C、C++程序都可以用到其中的东西,已支持AIX、HP-UX、Solaris、FreeBSD、Linux、Mac OS X和Windows操作系统  本人辛苦了四年,颠覆多次,终成这个发布版,现在作为unix-center的开源项目,任何非册用户进入此链接都可以下载  有兴趣的先顶一下,便于后面的伙计看到此贴。  第二版主要增加了进程通讯的一些东西,包括线程,线程锁
C++跨平台开发心得小结
Linux编程与windows编程的差异之处:      1. 文件与目录的大小写以及路径分隔符的差别      windows下不区分大小写,路径分隔符一般使用"/";linux下区分大小写,路径分隔符使用"/"。      2. itoa()函数在linux下并不存在      所以使用类似sprintf();之类的函数是个不错的替代。(为什么说是类似函数,看下面一条啦
java语言和C语言的跨平台原理
java跨平台原理(优点:一次编译,到处运行) C语言跨平台原理:(优点:多次编译,到出运行)
linux下C语言编程操作MySQL数据库
在实际应用中,我们不可能在命令行登录进数据库进行数据的查询、插入等操作,用户一般是使用一个界面良好的应用程序软件来对数据进行管理。为了方便应用程序的开发,MySQL提供了多种编程语言(C、perl、php等)的编程接口,供开发者使用。 对于C语言来说,MySQL提供了C语言客户机库,它允许从任何C程序的内部访问MySQL数据库,客户机实现API,API定义了客户机如何建立和执行与服务器的通信。
C#跨平台吗
理论上c#和.Net 程序是跨平台的,C#作为一种编程语言,早在2003年就成为ISO的标准之一。但是有很多实际问题。 1. 微软官方并没有提供除Windows(包括windows mobile)以外的其他系统,如Linux,苹果,Unix,等等的Framework。而不像Sun公司开发Windows,Linux以及手机版等多个版本JRE(Java Run Enviroment). 就是说C#和J
c++跨平台线程使用实例
#include #include #include #include #include #include #ifdef _WIN32 #include #include #include #include #else #include #include #include #include #endif #include using namespace std;
Linux c操作mysql数据库
【启动mysql服务】 Service mysql start 【启动mysql登陆】 mysql -u root –p   添加一个用户 Create database db1 character set utf8; grant all on db1.* to dbuser1 identified by 'dbuser1';//将db1下的所有数据授权给dbuser1,密码为dbu
Java C# .net 和 C C++ 跨平台的异同之处
当前主流的手机平台很多,而各个主流的平台的语言支持大同小异;如    1、windows系统WP8上主要支持 VB, C#, c/c++,     2、苹果系统ios上支持 object-c, c/c++    3、android系统上支持 java, c/c++ C# .net Java的跨平台是指它们在“编译系统”生成的中间文件的字节码(byte code)文件
纯C语言通用库(跨平台)
C语言通用库(跨平台)。 1.APR:Apache Portable Runtime 用于Apache服务器。 2.GLib:GNOME 用于开发桌面。 3.CF:Apple公司的基础库。 4.NSPR:Mozilla基金会用于客户端和红帽子服务器程序。
关于int,unsigned int , short的关系与跨平台应用及char,int,float等类型在不同平台下所占字节数
c++ 中关于int,unsigned int , short的关系与应用 int类型比较特殊,具体的字节数同机器字长和编译器有关。如果要保证移植性,尽量用__int16 __int32 __int64吧 __int16、__int32这种数据类型在所有平台下都分配相同的字节。所以在移植上不存在问题。 所谓的不可移植是指:在一个平台上编写的代码无法拿到另一个平台上运行时,不能达到期望的运行结
简单讲一下C语言连接MySQL数据库
1.首先你得将MySQL安装上   apt-get install mysql-server  (mysql -uroot -p 登陆测试) 2.安装链接库   apt-get install libmysqlclient-dev 3.进行数据库的创建,例如:   create table t1(a int, name varchar(10));   insert into t1 v
C语言 互斥锁 (跨平台 Windows+linux)pthread实现
互斥锁的主要目的是防止多个线程同时访问同一资源。为什么不允许多线程同时访问同一资源呢。首先我们要对程序在运算的过程。假如计程序要对一个变量执行自加运算,那么过程是:首先程序到这个变量的内存中拷贝走变量值,然后交给cpu,cpu计算后将计算结果返回,然后重新保存在原来的位置,从而实现了这个变量的自加运算。打个比方,有一个变量“tmp”,它当前的值为5,两个线程几乎同时要访问这个变量。线程a想执行tm
C++跨平台开源库 之一
在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行 而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可 经典的C++库 STLport——-SGI STL库的跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况下 那时还是有用的,当然目前vc71已经比较接近标准了, 故目前不怎么用它了。 Boost———准标准库, 功能强大 涉及能想的到的大部分非特别领域的算法, 有
socket跨平台编程及其简单应用
socket跨平台编程及其简单应用
真正的跨平台运行
跨平台运行应该不完全等同于跨平台开发, 真正的跨平台开发语言应该是C, 事实的跨平台编译器应该是LLVM或GCC, 跨平台的层次问题,恐怕又是个大话题暂不论。 跨平台运行的主流实现源于Java应该没有争议, .NET也是一个流派, 当时跨的主要是Windows和类Unix, 现今,面对瘦身如此严重的Android和iOS, JVM和CLR实在是太重型了。 另一个角
Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台)
PC的其实根本不用说,毕竟C#和C++交互的文章已经够多了,当然我自认为经过几次折腾后,几乎所有游戏需要到的操作我都掌握了(各种传参方法,各种坑,不懂的可以留言问,虽然基本上没人看,哈哈) 废话不多说,我们主要来讲两大平台——iOS和android——与unity的native代码交互 这里啰嗦一下就是去网上搜都是各种蛋疼的东西,比如如果要调用unity C#的
C++跨平台XML解析类库-pugixml
pugixml库的使用       这两天接触了一个c++编写的xml解析库——pugixml,能解析xml内容,支持xpath解析,且能跨Linux平台,不错!以前一直习惯用CMarkup,主要用它读写xml配置文件,但CMarkup不支持xpath,也只能在windows用,虽然习惯了CMarkup,不过若需要xpath解析,又需要跨linux平台,相比之下,pugixml确实是很好
转载至C语言中文网-跨平台条件编译
假如现在要开发一个C语言程序,让它输出红色的文字,并且要求跨平台,在 Windows 和 Linux 下都能运行,怎么办呢? 这个程序的难点在于,不同平台下控制文字颜色的代码不一样,我们必须要能够识别出不同的平台。 Windows 有专有的宏_WIN32,Linux 有专有的宏__linux__,以现有的知识,我们很容易就想到了 if else,请看下面的代码: #i
一步步编写跨平台串口调试助手
开发平台:Qt5.4.1 github:https://github.com/tianzhihen/youCanPrintf-serial.git
跨平台C++服务器程序开发 (1)了解跨平台开发
跨平台服务器程序的作用所谓跨平台,主要指Windows和Linux两个主要平台。如今绝大多数服务器后端程序运行在Linux平台,这是因为Linux具有免费、开源、远程操控方便、易于大规模运维管理等优点,相比之下,Windows平台更适用于个人用户的办公和娱乐,因此服务器程序多数要在Linux平台上运行。但是在开发过程中,大部分开发者更习惯使用Windows平台的Visual Studio(简称VS)
跨平台的线程封装类
#ifdef WIN32 #include #include #else #include #endif /* #ifdef WIN32 typedef unsigned int(__stdcall *thread_func)(void*); #else typedef void*(*thread_func)(void*); #endif */ class base_thread { p
静态链接中的那点事儿(2):C++二进制兼容性及跨平台初步
C++的一些语言特性使之必须由编译器和链接器共同支持才能完成工作。最主要的有两个方面,其一,C++的重复代码的消除;其二,全局构造与析构。此外,由于C++的各种特性,比如虚函数、函数重载、继承、异常等,使得C++背后的数据结构异常复杂。而且最为不幸的是,这些数据结构往往在不同的编译器和链接器之间不能相互通用,使得C++程序的二进制兼容性成为一个难题。本篇博客将结合项目经验初步讨论C++程序的二进制
C/C++连接mysql数据库(vs)
注:本篇只介绍在VS上C/C++与Mysql数据库的连接,默认已经搭建好数据库,如果没有,请先学习相关资料搭建好数据库后再来阅读本文。 开门见山,直入主题。 我们要做的其实只有两步:(1)将工程的头文件路径指向Mysql安装目录的mysql.h头文件所在位置。(2)将链接库路径指向libmysql.lib所在路径。笔者这里数据库使用的是Mariadb,连接方法与mysql相同。 首先找到my
Java知多少虚拟机(JVM)以及跨平台原理
相信大家已经了解到Java具有跨平台的特性,可以“一次编译,到处运行”,在Windows下编写的程序,无需任何修改就可以在Linux下运行,这是C和C++很难做到的。 那么,跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。 JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,
编写Linux下用C语言访问MySQL数据库的程序
<br />  在编写这个程序的时候我和同学费了很大的力气特别是在编译的时候,下面我就把自己编译的经验给大家分享一下,希望大家能少走一些弯路。<br />     我自己装了mysql-5.0.41-linux-i686-glibc23.tar.gz 安装部分就不说了!自己在网上查吧!我的安装目录是 /usr/local/mysql 在这里说安装的目录是因为我们编程的时候要用到里面的头文件和库,头文件的目录就是在/usr/local/mysql/include/ ,库文
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池