当前位置:  数据库>oracle

Mac系统下编译Oracle的SQL Drivers插件qsqloci

    来源: 互联网  发布时间:2017-04-23

    本文导语: 今天编译在Mac下编译了Oracle的SQL驱动插件,这里记录编译过程供参考。 先介绍一下编译环境:Mac OS X 10.7.3, 安装Qt SDK 1.2 for Mac,XCode 4.2.1。 1. 首先是到Oracle的网站上下载相关的库和开发包,按照Qt文档中的说明(How to Build the OCI P...

今天编译Mac下编译了OracleSQL驱动插件,这里记录编译过程供参考。

先介绍一下编译环境:Mac OS X 10.7.3, 安装Qt SDK 1.2 for Mac,XCode 4.2.1。

1. 首先是到Oracle的网站下载相关的库和开发包,按照Qt文档中的说明(How to Build the OCI Plugin on Unix and Mac OS X),需要下载"Instant Client SDK iis7站长之家 - Basic"和"Instant Client Package - SDK"两个包,可以从这里找到要下载的内容

2. 把下载的zip文件解压到同一个目录下,如Oracle10gClient;

3. 编译。在qt的文档中有两种方法,一个是利用configure生成makefile在执行make,另一种是利用qmake生成makefile再生成。我这里用第一种方法没有成功(原因不详),这里说的是第二种方法:

1)进入Qt源码目录,~/QtSDK/QtSources/4.8.0/src/plugins/sqldrivers/oci

2)  执行qmake命令, 按照文档中的说明,执行

  • qmake "INCLUDEPATH+=[your_oracle_dir]/instantclient_10_2/sdk/include" "LIBS+=-L[your_oracle_dir]/instantclient_10_2 -Wl,-rpath,[your_oracle_dir]/instantclient_10_2" -lclntsh -lnnz10" oci.pro  
  • 这里的[your_oracle_dir]需要替换为第2步创建的目录。然后再执行make生成库文件。

    在执行时make发现无法找到这个文件,www.linuxidc.com而实际这个文件在目录中是有的,原因是默认执行qmake时只把二进制的include目录QtSDK/Desktop/Qt/4.8.0/gcc/include这个目录放在INCLUDEPATH中,而这个文件是在源代码目录下,所以会出现无法找到头文件的问题。解决办法是把源代码的include目录在qmake时直接添加进去,也就是执行如下的qmake命令:

  • qmake "INCLUDEPATH+=[your_oracle_dir]/instantclient_10_2/sdk/include ~/QtSDK/QtSources/4.8.0/include" "LIBS+=-L[your_oracle_dir]/instantclient_10_2 -Wl,-rpath,[your_oracle_dir]/instantclient_10_2" -lclntsh -lnnz10" oci.pro  
  • 这样是可以编译成功的,但是在最后link时还有一个错误,无法找到库文件“library not found for -lclntsh”,查找了oracle的安装目录下,确实没有这个文件,但有一个libclntsh.dylib.10.1,猜测这个就是一个动态库,只是版本不同的问题。于是给这个文件做个符号链接,在[your_oracle_dir]目录下执行

    ln -s libclntsh.dylib.10.1 libclntsh.dylib  

    然后再回头去执行make命令,就可以创建成功了。创建后的文件在~/QtSDK/QtSources/4.8.0/src/plugins/sqldrivers/oci目录下,把它们复制到Qt的sqldrivers目录下就可以了。

    以上就是整个生成驱动插件的过程。


        
     
     
     
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.crypto类mac的类成员方法: mac定义及介绍
  • Mac的搜索框 qsb-mac
  • java命名空间javax.crypto类mac的类成员方法: getmaclength定义及介绍
  • 请问怎样编程获得本机的MAC地址?还有能不能设置本机MAC地址?
  • java命名空间javax.crypto类mac的类成员方法: getprovider定义及介绍
  • ifconfig -a显示的mac地址全是00,而在windows下能得到正确的MAC。什么原因?
  • java命名空间javax.crypto类mac的类成员方法: reset定义及介绍
  • php获取服务器端mac和客户端mac的地址支持WIN/LINUX
  • java命名空间javax.crypto类mac的类成员方法: getinstance定义及介绍
  • linux tc怎么对 目的MAC ,源MAC,目的IP, 源 IP,目的 port ,源 port配置带宽限制规则?谢谢
  • java命名空间javax.crypto类mac的类成员方法: dofinal定义及介绍
  • 如何更改HP9000小型机的mac地址
  • java命名空间javax.crypto类mac的类成员方法: init定义及介绍
  • 在一台SUN上用ifconfig看到mac地址是0,不太可能吧
  • java命名空间javax.crypto类mac的类成员方法: update定义及介绍
  • 改完mac地址仍然上不了网
  • java命名空间javax.crypto类mac的类成员方法: clone定义及介绍
  • 怎样修改linux下网卡的MAC地址?
  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • js mac地址 正则表达式
  • Mac's CMS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3