VC编译OCCI的解决方案
来源:互联网 发布:曼哈顿模考软件 编辑:程序博客网 时间:2024/05/16 06:47
解决过程中,发现少有的解决方案也是零星和不详细的。我把总结的成果共享一下吧,希望能对后来者有所帮助。
Windows下编译的步骤
2005-7-28
一、 安装必备软件
1、 安装Oracle客户端,其中会含有oci的库文件。
2、 安装MS Visual C++
二、 修改源文件
1、增加接口。在OcciDml.hpp中增加extern "C" int __declspec(dllexport) funA(char* a); 在
OcciDml.cpp中将函数声明修改为extern "C" int __declspec(dllexport) funA(char* a)
2、修改头文件。在需要引入的所有类中,替换为
#ifndef OCCI_ORACLE
#define WIN32COMMON
#include "occi.h"
using namespace oracle::cci;
using namespace std;
#endif
否则会出现错误如下:
d:\oracle\ora92\oci\include\occicontrol.h(1132) : error C2995: 'getVector' : template
function has already been defined
d:\oracle\ora92\oci\include\occicommon.h(425) : see declaration of 'getVector'
三、 设置环境变量
1、 设置INCLUDE,这可以使cl.exe在命令行时执行成功
2、 设置LIB,这可以使cl.exe在link时找到库
四、 VC设置环境
1、 在Tools->Options->Directories->INCLUDE中加入%ORACLE_HOME%/OCI/INCLUDE和%ORACLE_HOME%/PRECOMP/PUBLIC。
2、 在Tools->Options->Directories->Library files中加入%ORACLE_HOME%/OCI/lib/MSVC/VC6和%ORACLE_HOME%/OCI/lib/MSVC 和%ORACLE_HOME%/precomp/lib/MSVC
3、在Project->Setting->Link->Input中增加oci.lib,oraocci10d.lib,oraSQL10.lib,msvcrt.lib
4、在Project->Setting->Link->General中选择”Ignore all default libraries”,然后修改为
/NODEFAULTLIB:libcd
5、在Project->Setting->C/C++->Preprocessor中增加WIN32COMMON,_MT,_DLL
否则,会出现ResultSet的getString错误。
6、附编译后日志中的编译选项为/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "YIELDDLL_EXPORTS" /D "WIN32COMMON" /D "_MT" /D "_DLL" /FR"Debug/" /Fp"Debug/yielddll.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD
/GZ /c
五、设置Oracle的lisener
找到lisener.ora,修改为(ENVS="EXTPROC_DLLS=ANY")
六、部署
拷贝到oracle的bin目录下,执行create library命令
- VC编译OCCI的解决方案
- VC编译OCCI的解决方案
- OCCI在VC下的编译问题
- VC++调试OCCI程序的关键设置
- VC++调试OCCI程序的关键设置
- VC使用OCCI开发的简介
- VC编译错误LNK2001的解决方案
- VC++中使用OCCI
- VC++中使用OCCI
- 在VC++中使用OCCI
- 在VC++中使用OCCI
- 在VC++中使用OCCI
- 卡巴斯基导致vc编译变慢的解决方案
- 编译VC静态库中遇到的C2859错误解决方案
- 编译VC静态库中遇到的C2859错误解决方案
- 编译VC静态库中遇到的C2859错误解决方案
- occi的基本操作
- vc++6.0中使用OCCI前的配置 链接oracle查询数据的示例
- /usr/bin/ld: cannot find -lxxx解决办法
- Windows程序中实现程序开机自启动
- 李航:机器学习新动向:从人机交互中学习
- Oracle表数据的C++存取接口
- IDCardUtils身份证工具类
- VC编译OCCI的解决方案
- POJ数学题目(转载)
- VC++中使用OCCI
- 【SPOJ104】Highways
- C++学习之模板
- VC使用OCCI开发的简介
- 恪守诚信!治学之道,首在心静。非心静无以言学,非宁静无以致远。
- Java构建者模式(Builder)
- 第14周项目14-字符串统计(四)