移植freetds主要是为了能够在linux下,使用C语言访问微软的sqlserver数据库。

参考连接

http://blog.csdn.net/neighbor1000/article/details/8824084

http://blog.csdn.net/lovehere33/article/details/41118405

在ubuntu上安装

从官网下载最新的稳定版本。

http://www.freetds.org/

以前使用旧的0.61版本,连接sqlserver服务器,速度很慢,需要几十秒,有时甚至连接不上。

后来下载稳定版本,连接速度很快。目前下载的版本是freetds-1.00.39

编译之前,查看freetds能够支持的tds协议的版本号。

./configure --help 查看能够支持的版本。

如下内容显示了版本号。

  --with-tdsver=VERSION   TDS protocol version
(4.2/4.6/5.0/7.0/7.1/7.2/7.3/7.4/auto) [auto]

运行如下命令

./configure --prefix=/usr/local/freetds1.0 --with-tdsver=7.0 --enable-msdblib --disable-libiconv

make && make install

就会在/usr/local/freetds1.0目录中安装。

测试方法

qt@tony:~$ cd /usr/local/freetds1.0/bin/
qt@tony:/usr/local/freetds1.0/bin$ ./tsql -H 192.168.3.126 -p 1433 -U user -P password
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>

-H:sqlserver服务器的ip地址

-p: 端口号

-U: 用户名

-P:密码

查看sqlserver版本

1> select @@version
2> go Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86)
Apr 2 2010 15:53:02
Copyright (c) Microsoft Corporation
Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) (Hypervisor) (1 row affected)
1>

arm交叉编译

export CC=arm-linux-gcc

export LD=arm-linux-ld

export CPP=arm-linux-cpp

./configure --host=arm-linux --prefix=/usr/local/freetds-arm --with-tdsver=7.0 --enable-msdblib --disable-libiconv

make && make install

之后就会在/usr/local/freetds-arm目录中有交叉编译的文件。

将其中的文件打包,放到开发板相应的/usr/local/freetds-arm目录中,移植就完成了。

ubuntu编译app

gcc -o testsybase testsybase.c -L /usr/local/freetds1.0/lib/ -lsybdb -I /usr/local/freetds1.0/include/

testsybase.c是测试程序名称。

使用C语言编写测试app,运行时,需要先指定freetds库文件的位置。

export LD_LIBRARY_PATH=/usr/local/freetds1.0/lib/

交叉编译app

arm-linux-gcc -o testsybase testsybase.c -L /usr/local/freetds-arm/lib/ -lsybdb -I /usr/local/freetds-arm/include/

将生成的文件添加到开发板上即可。

运行时添加环境变量export LD_LIBRARY_PATH=/usr/local/freetds7.0/lib/


Tony Liu

2017-5-26, Shenzhen

freetds 移植的更多相关文章

  1. MVVM框架从WPF移植到UWP遇到的问题和解决方法

    MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...

  2. IIC驱动移植在linux3.14.78上的实现和在linux2.6.29上实现对比(deep dive)

    首先说明下为什么写这篇文章,网上有许多博客也是介绍I2C驱动在linux上移植的实现,但是笔者认为他们相当一部分没有分清所写的驱动时的驱动模型,是基于device tree, 还是基于传统的Platf ...

  3. Linux主机上使用交叉编译移植u-boot到树莓派

    0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...

  4. STM32F429 LCD程序移植

    STM32F429自带LCD驱动器,这一具有功能给我等纠结于屏幕驱动的程序员带来了很大的福音.有经验的读者一定有过这样的经历,用FSMC驱动带由控制器的屏幕时候,一旦驱动芯片更换,则需要重新针对此驱动 ...

  5. 将MPM雪模拟移植到Maya

    同事实现了一个迪士尼的MPM雪模拟论文,我将其移植到Maya中 论文题目是 A material point method for snow simulation 代码在这里: https://git ...

  6. ucos实时操作系统学习笔记——操作系统在STM32的移植

    使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...

  7. DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一

    关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基 ...

  8. geotrellis使用(二十五)将Geotrellis移植到spark2.0

    目录 前言 升级spark到2.0 将geotrellis最新版部署到spark2.0(CDH) 总结 一.前言        事情总是变化这么快,前面刚写了一篇博客介绍如何将geotrellis移植 ...

  9. geotrellis使用(二十四)将Geotrellis移植到CDH中必须要填的若干个坑

    目录 前言 若干坑 总结 一.前言        近期干了一件事情,将geotrellis程序移植到CDH中(关于CDH,可以参考安装ClouderaManager以及使用ClouderaManage ...

随机推荐

  1. Spring Cloud内置的Zuul过滤器详解

    Spring Cloud默认为Zuul编写并启用了一些过滤器,这些过滤器有什么作用呢?我们不妨按照@EnableZuulServer.@EnableZuulProxy两个注解进行展开,相信大家对这两个 ...

  2. Theories of Deep Learning

    https://stats385.github.io/readings Lecture 1 – Deep Learning Challenge. Is There Theory? Readings D ...

  3. javascript的toString深入探究

    toString()方法是所有对象都有的一个方法,无论是字符串,数组,对象,都可以调用这个方法,但是,事实上,他们调用的并不是同一个函数哦! 看下面的代码: var str = '123'; cons ...

  4. Eclipse工程文件夹 红叹号

    问题产生: 重装系统后,换了个新版本的Eclipse,但是,使用以前的工程目录(工程目录重命名了)后,发现,一些工程上显示红叹号,仔细查看里面的代码,也没有错误 问题原因: 经过查看,是工程中,使用的 ...

  5. (原)docker的一个“Driver aufs failed to remove...”问题的解决

    1.  /var/lib/docker/aufs/mnt下的目录不能乱删! /var/lib/docker/aufs/diff下的目录删了就死了!!!!!2. 尽量不要用docker tag -f 这 ...

  6. 【Java】Java复习笔记-三大排序算法,堆栈队列,生成无重复的随机数列

    冒泡排序 package com.lcw.bubble; public class BubbleSort { /** * 冒泡排序 * @param args * @author 成鹏致远 */ pu ...

  7. Ubuntu 系统下卸载 IntelliJ IDEA

    参考:http://blog.csdn.net/csdnones/article/details/50449947 卸载只需要删除解压出来的目录就行了,然后删除/home/你用登录名/IntelliJ ...

  8. 第23章 RTX 低功耗之待机模式

    以下内容转载自安富莱电子: http://forum.armfly.com/forum.php STM32F103 待机模式介绍 本章节我们主要讲解待机模式,待机模式可实现系统的最低功耗.该模式是在 ...

  9. 手记:配置IIS服务器,支持sis、SISX、3GP、ADP、AMR、JAD、JAR、MMF、MFM、PMD、UMD等文件下载

    发此博文原因是遇到一个 手机端读取服务器端.amr格式文件失败的例子.   反复测试发现从服务端无法播放,或下载.amr格式的文件.就想到可能是服务器站点托管服务 IIS不支持对.amr格式的解析,意 ...

  10. java基础篇---网络编程(IP与URL)

    一:IP与InetAddress 在Java中支持网络通讯程序的开发,主要提供了两种通讯协议:TCP协议,UDP协议 可靠地连接传输,使用三方握手的方式完成通讯 不可靠的连接传输,传输的时候接受方不一 ...