2 u013399457 u013399457 于 2015.07.04 19:08 提问

在VS2010平台上怎么搭建occi环境,访问oracle 11g

我是用的VS2010访问oracle 11g,oracle自带 OCI,我按照网上说的下载了occivc10_11202_win64.zip,解压到OCI目录下OCI\lib\MSVC\vc10,并且按照网上说的,加载库函数和头文件;但是总出问题,说找不到文件
#include
#include
using namespace std;
using namespace oracle::occi;
void main(){
try{
Environment env=Environment::createEnvironment();
cout<<"success-------Environment"< Connection *conn=env->createConnection("hr","12345","localhost:1521/orcl");
cout<<"success-------Connection"<<endl;
/*string sql="select * from emp where employee_id=119";
/
string sql="insert into emp values ('207','zhang','9800')";
Statement *stmt=conn->createStatement(sql);
stmt->executeUpdate();
cout<<"success-------insert"< env->terminateConnection(conn);
Environment::terminateEnvironment(env);
}
catch(SQLException &e){
cout<<e.what()<<endl;
}
}

编译后总是出问题,出现两个error LNK2019: 无法解析的外部符号
1>OCITest.obj : error LNK2019: 无法解析的外部符号 "public: static void cdecl oracle::occi::Environment::terminateEnvironment(class oracle::occi::Environment *)" (?terminateEnvironment@Environment@occi@oracle@@SAXPAV123@@Z),该符号在函数 _main 中被引用
1>OCITest.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),该符号在函数 _main 中被引用
1>C:\Users\asus\documents\visual studio 2010\Projects\OCCITest2\Debug\OCCITest2.exe : fatal error LNK1120: 2 个无法解析的外部命令

4个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.04 22:55

库函数没有link进来,编译器中配置好lib路径了吗。

oyljerry
oyljerry 回复剑下浮云: 还要看这个库是不是vs2010版本
2 年多之前 回复
u013399457
u013399457 我是按照网上说的,在项目属性中设置的五项“OCI\lib\msvc\vc10““OCI\include”"OCI\lib\MSVC""oraocci11.lib;oraocci11d.lib;%(AdditionalDependencies"
2 年多之前 回复
u013399457
u013399457   2015.07.05 00:53

oyljerry “库函数没有link进来,编译器中配置好lib路径了吗。”
我是按照网上说的,在项目属性中设置的如下六项:
(1)在"属性" -> "链接器" -> "常规"下,为"附加库目录"添加如下路径"
"D:\Users\Oracle\Program\OCI\lib\msvc\vc10",
(2)并将"链接库依赖项"和"使用库依赖项输入"皆改为"是"。
链接器—>输入->附加依赖项:
oraocci11.lib;oraocci11d.lib;%(AdditionalDependencies)
(3)属性->VC++目录 ->包含目录:
D:\Users\Oracle\Program\OCI\include;$(IncludePath)
(4)属性->VC++目录 ->库目录:
D:\Users\Oracle\Program\OCI\lib\MSVC\vc10;
D:\Users\Oracle\Program\OCI\lib\MSVC;
(5)属性->C/C++ ->附加包含目录:
D:\Users\Oracle\Program\OCI\include;%(AdditionalIncludeDirectories)
(6)链接器->输入->附加依赖项:
oraocci11.lib;oraocci11d.lib;%(AdditionalDependencies)

设置好这六项,总是生成失败

u013399457
u013399457   2015.07.05 00:54

oyljerry “库函数没有link进来,编译器中配置好lib路径了吗。”
我是按照网上说的,在项目属性中设置的如下六项:
(1)在"属性" -> "链接器" -> "常规"下,为"附加库目录"添加如下路径"
"D:\Users\Oracle\Program\OCI\lib\msvc\vc10",
(2)并将"链接库依赖项"和"使用库依赖项输入"皆改为"是"。
链接器—>输入->附加依赖项:
oraocci11.lib;oraocci11d.lib;%(AdditionalDependencies)
(3)属性->VC++目录 ->包含目录:
D:\Users\Oracle\Program\OCI\include;$(IncludePath)
(4)属性->VC++目录 ->库目录:
D:\Users\Oracle\Program\OCI\lib\MSVC\vc10;
D:\Users\Oracle\Program\OCI\lib\MSVC;
(5)属性->C/C++ ->附加包含目录:
D:\Users\Oracle\Program\OCI\include;%(AdditionalIncludeDirectories)
(6)链接器->输入->附加依赖项:
oraocci11.lib;oraocci11d.lib;%(AdditionalDependencies)

设置好这六项,总是生成失败

frank_20080215
frank_20080215   2015.07.05 08:21

配置好Link的设置和lib的路径及导入

Csdn user default icon
上传中...
上传图片
插入图片