VS2010+Oracle12g C++开发环境搭建笔记

来源:互联网 发布:东南亚知乎 编辑:程序博客网 时间:2024/05/19 18:40

1. 起因

    最近用到Oracle OCCI编程技术(跨Windows和Linux平台),于是在本机Windows上搭起开发环境。从Oracle官网上下载了最新的版本12.1.0.2.0的64位企业版(12g以后,不再有32位版的Oracle),编码环境使用VS2010。捣鼓了一阵,把遇到的问题记录一下。

2. 安装Oracle

    安装过程略。记住设置的口令,以后的sys和system的口令就是它了。

3. 在VS项目中配置开发环境

    与OCCI编程相关的目录在D:\app\myoracle\product\12.1.0\dbhome_1\OCI下:


    include目录是需要包含的头文件,lib是用于链接的库。在lib/MSVC下是支持各个版本VS的库:


    这里的vc10、vc11、vc12表示的是对应的VS版本,比如vc10表示VS2010支持的库。只要在项目中引用这些头文件和库文件就可以了。

4. 问题来了

    当我建立了项目,关联了相应的头文件和库文件后,编译时发现出现链接失败:

    提示无法解析的外部符号oracle::occi::Environment::createEnvironment以及oracle::occi::Environment:: terminateEnvironment。

5. 原因

    原来我建立的是Win32项目,也即是32位的应用程序,我却关联的是64位的Oracle库,这样就出现问题。当然,如果将项目转为x64就没有问题了,但是由于我其它的一些库是32位的,没法换,所以只能找解决方法了。

6. 解决方法

    我安装在本机的Oracle是用来作为Oracle数据库用的,开发需求的话,就需要别想办法了。在Oracle官网上找到了Oracle Instant Client的下载:

    http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

    根据官网的说法,这应该是用于发布需要用到Oracle的客户端产品,发现,正好有与Oracle版本对应的Instant Client:

    而且还分32位和64位版本,正好,选择32位版本下来看看。选择了一个内容最全的版本:


    但下载后发现,里面只有dll文件,没有.lib文件。



    继续查看,发现本页面下,还有一个版本:


    说有头文件和例子,那应该有库文件吧,下载下来,果然,有lib文件。


    正好,两个组合,lib文件、dll文件都有了,搞定。

    在Oracle Instant Client的下载页面:

    http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

    在这个页面下,有很多有用的信息,比如:


    有一个OCCI相关的链接,点进去,找到如下:


    点击OCCI for Linux/Windows:


    这里居然也有相关的信息,但是遗憾的是,它是有11g版本的,没有12g版本的,难道是Oracle忘记更新了?也许还有更简单的解决方法吧!这样略显坑爹!

0 0
原创粉丝点击