移植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> goMicrosoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (Intel X86) Apr  2 2010 15:53:02 Copyright (c) Microsoft CorporationEnterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) (Hypervisor)(1 row affected)
1> 

arm交叉编译

export CC=arm-linux-gccexport LD=arm-linux-ldexport CPP=arm-linux-cpp./configure --host=arm-linux --prefix=/usr/local/freetds-arm --with-tdsver=7.0 --enable-msdblib --disable-libiconvmake && 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. jquery程序 windows移植到linux显示不了,windows程序移植linux

    1,路径名统一用正斜杠"/".(windows下正反斜杠都识别,linux只认正斜杠.) 2,统一使用UTF-8格式编码. vim中无法保存汉字时,可输入下列命令: :set fi ...

  2. PowerBuilder程序 ASA 数据库移植后不能连接解决

    前言: 软件开发工具实践课作业用的powerbuilder自带的数据库画板建立的,建好之后运行成功后就没有再管过了.后来代码在别人的机器跑不起来.报错信息如下 找到原因: 程序运行完后,没有手动断开连 ...

  3. web server大全之GoAhead移植(转载)

    转自:http://linux.chinaunix.net/techdoc/develop/2009/06/19/1119124.shtml 注:最近在做goAhead web server和移植其到 ...

  4. Tomcat V6 Examples移植到Apusic V5.1

    目标:将Tomcat V6的的例子Examples移植到Apusic V5.1上 术语:Tomcat:只提供了WEB容器的开源服务器: Apusic:提供了完整的J2EE支持的商用服务器: %TOMC ...

  5. 嵌入式linux alsa,嵌入式Linux下ALSA音频架构ALSA-lib移植与编译心得

    **************************************************************************************************** ...

  6. java的移植性_详细介绍JAVA的可移植性

    软件可移植性指与软件从某一环境转移到另一环境下的难易程度.为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境.尽量不用与系统的底层相关性强的语言.下面介绍JAVA的可移植性. 1 ...

  7. [mqtt]mqtt嵌入式移植

    目前在无线这块,很多4G模组的厂商已经将mqtt放入模块内,无需在项目代码中再实现mqtt移植 github eclipse paho source code: https://github.com/ ...

  8. windows程序移植linux

    1,路径名统一用正斜杠"/".(windows下正反斜杠都识别,linux只认正斜杠.) 2,统一使用UTF-8格式编码. vim中无法保存汉字时,可输入下列命令: :set fi ...

  9. NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程

    Android平台搭建和NDK环境配置 Android移植基础 NDK是集成的Android中调用C++代码的工具包,核心是JNI(Java Native Interface)技术,具体这里略过不表. ...

最新文章

  1. python折线图样式_011 利用Python进行数据可视化
  2. LintCode 1.A+B的问题
  3. java程序语句的理解,[每日学习笔记][2012.07.10]使用Java理解程序逻辑(六)
  4. 怎么用python画圆柱_python-如何绘制具有非恒定半径的圆柱
  5. SQLite事务与自增深度分析
  6. pythonfor循环是迭代器吗_[Python] 迭代器是什么?你每天在用的for循环都依赖它!...
  7. 十行代码实现title滚动显示
  8. Java 常用对象-System类
  9. C语言函数调用常见问题(1)
  10. UDP socket查询高速缓存
  11. 移动领先100笔试面试经验
  12. matlab中grid的用法
  13. 关于Contiguous()方法
  14. 【LOJ6247】九个太阳(单位根反演)(二项式定理)
  15. 【墨者学院】WebShell文件上传漏洞分析溯源(第2题)
  16. Python标准库 内置函数exec object globals locals
  17. Java后台实现pdf文件在浏览器中预览
  18. zap日志的基本使用(go必会知识*)
  19. 养成数据分析思维-第三天(面试官可能会问到的问题)
  20. PROTAC——小分子化合物

热门文章

  1. 听说你对 ES6 class 类还不是很了解
  2. 推荐几个干货超多助你成长的前端大佬
  3. 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法
  4. 使用nmcli 实现 bond0 网络组 网桥三种模式
  5. Nginx服务状态的监控
  6. lintcode二叉树的锯齿形层次遍历 (双端队列)
  7. php strtoup,PHP 7 的几处函数安全小变化
  8. pdf安装包_有么有pdf控件,不需要用户安装任何安装包直接打印的?
  9. bindresult必须在哪个位置_手机视频剪辑工具哪个好?清爽视频编辑APP有人推荐吗?...
  10. 如何添加JWT生成的token在请求头中