日期:2014-05-17  浏览次数:21195 次

oracle 的OCCI开发遇到的问题?
已经安装好
(1) instantclient-basic-windows.x64-11.2.0.3.0
(2) instantclient-sdk-windows.x64-11.2.0.3.0
(3) occivc10_11203_win64

在配置属性中也将路径加进去了,包含了oraocci11.lib
#pragma comment (lib, "oraocci11.lib")

遇到的提示错误

1>dboperate.obj : error LNK2019: 无法解析的外部符号 "public: static class oracle::occi::Environment * __cdecl oracle::occi::Environment::createEnvironment(enum oracle::occi::Environment::Mode,void *,void * (__cdecl*)(void *,unsigned int),void * (__cdecl*)(void *,void *,unsigned int),void (__cdecl*)(void *,void *))" (?createEnvironment@Environment@occi@oracle@@SAPAV123@W4Mode@123@PAXP6APAX1I@ZP6APAX11I@ZP6AX11@Z@Z),该符号在函数 "public: int __thiscall IntoDB::Initial(void)" (?Initial@IntoDB@@QAEHXZ) 中被引用

1>dboperate.obj : error LNK2019: 无法解析的外部符号 "public: static void __cdecl oracle::occi::Environment::terminateEnvironment(class oracle::occi::Environment *)" (?terminateEnvironment@Environment@occi@oracle@@SAXPAV123@@Z),该符号在函数 "public: virtual __thiscall IntoDB::~IntoDB(void)" (??1IntoDB@@UAE@XZ) 中被引用
1>D:\Projects\FileOperate\Debug\FileOperate.exe : fatal error LNK1120: 2 个无法解析的外部命令

请大神们指点。。。
------最佳解决方案--------------------
我不能确保你在属性里的lib路径全部都生效.

为了调试的目的,你把occi lib以及oci lib的#pragma语句,弄成全路径试试。

再者如果不行,你要查检一下你下的instantclient中的lib文件是基于vs2003, vs2005, 还是vs2008编译出来的,版本也必须匹配。

作为我个人来讲,我从不使用instantclient来创建应用。直接自己制取一个oracle client,也没多大。

------其他解决方案--------------------
引用:
大神,我已经包含全路径了,还是不行啊。


检查版本了吗? 比如用这个:

#define WIN32COMMON

#pragma comment(lib,"D:\\Oracle\\11.2.0\\OCI\\lib\\MSVC\\oci.lib")
//#pragma comment(lib, "msvcrt.lib")
//#pragma comment(lib, "msvcprt.lib")
#pragma comment(lib,"D:\\Oracle\\11.2.0\\OCI\\lib\\MSVC\\vc8\\oraocci11.lib")


------其他解决方案--------------------
如果lz问题没解决,去看看我的blog吧
http://blog.sina.com.cn/s/blog_4fb1ac5701013zmr.html

------其他解决方案--------------------
oci.lib也得加进去啊。
------其他解决方案--------------------
wo shi guo le ,ye bu guan yong???

引用:
oci.lib也得加进去啊。

------其他解决方案--------------------
我加进去了,也不没有用,我只在sdk\lib\msvc下面发现了oci.lib,其他地方都没有

引用:
oci.lib也得加进去啊。

------其他解决方案--------------------
大神,我已经包含全路径了,还是不行啊。

引用:
我不能确保你在属性里的lib路径全部都生效.

为了调试的目的,你把occi lib以及oci lib的#pragma语句,弄成全路径试试。

再者如果不行,你要查检一下你下的instantclient中的lib文件是基于vs2003, vs2005, 还是vs2008编译出来的,版本也必须匹配。

作为我个人来讲,我从不使用instantclient来创建应用。直接自己制取一个or……

------其他解决方案--------------------
有没大神再回答啊,还没搞定呢。
------其他解决方案--------------------
lz搞定了吗?是怎么回事啊?!
------其他解决方案--------------------