MinGW和vc6中编译DTL的过程

     一、MingW下

      下了DTL源码后,在windows由于装了MinGW,于是决定在MinGW下也试试编译DTL,于是cmd进入dtl目录后make,出现以下错误:

common.sh ,line11,getopt:command not found 。去了MinGW的2个目录下也没找到getopt.exe

       结合http://fvue.nl/wiki/Bash_and_Windows#getopt:_command_not_found 和https://github.com/nvie/gitflow/pull/109 知道需要安装Util-linux ,说到Util-linux,这里有个安装指南http://lamp.linux.gov.cn/Linux/LFS-6.1.1/chapter05/util-linux.html ,以前也下了Util-linux包,不过当时错下为linux下的,所以无法编译。

      到http://gnuwin32.sourceforge.net/packages/util-linux-ng.htm下载util-linux包(windows平台),并编译如下:

会得到如下错误:

不过在我们的getopt目录下生成了getopt.exe如下:足矣

    于是拷贝到C:\MinGW\msys\1.0\bin目录下,再次进入dtl目录make,虽然会生成入下错误:

      不过在我们的dtl\lib\debug下生成了libDTL.a文件和一堆.p文件,可以算生成成功了吧

       至此,搞定!

  

        二、vc6下

       下面看看vc6编译的,因为里面有个性能测试的是在windows下用sqlserver,不过用vc6自带建好的工程,会得到个错:error C2061: syntax error : identifier 'SQLULEN' ,也许是没包含MinGW的include吧,回头加上试试http://blog.csdn.net/mnorst/article/details/6622368 照这人说的方式改了依旧有问题。

       在工程设置中,添加上了MinGW的include,如下,工具->选项->目录,添加include,依旧报错。试着比较vc6的vc98\include\sqltypes.h和MinGW的sqltypes.h,发现问题了,vc98下的没有SQLULEN,而在MinGW下的有,于是拷贝那几行宏

#define SQLROWOFFSET SQLINTEGER
#define SQLROWCOUNT SQLUINTEGER
#define SQLULEN SQLUINTEGER
#define SQLTRANSID DWORD
#define SQLSETPOSIROW SQLUSMALLINT

       到dtl_base_types.h,再次编译,no error,lib\debug下生成DTL.lib,至此,搞定。

       菜鸟goes on ~~~     

       ps:上次用百度搜ubuntu postgresql  odbc关键字,结果搜到第一个,居然内容是我的,虽然网站部是我博客,字居然一模一样啊。哎,借鉴没有什么,不过好歹说明下出处啊,而且有个错,还没改呢,不过好歹作者还是写的我,哈哈,想跟帖的,算了,共勉吧

 

你可能感兴趣的:(Linux)