我正在尝试使用头occi.h代码编译cpp代码,我使用的代码是
#include <iostream>
#include <occi.h>
using namespace std;
int main(){
oracle::occi::Environment* environment;
oracle::occi::Connection *con;
oracle::occi::Statement* stmt;
oracle::occi::ResultSet* res;
try
{
environment = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::DEFAULT);
con = environment->createConnection("sys", "root","xe");
stmt = con->createStatement("select * from customers");
res = stmt->executeQuery();
while (res->next())
std::cout<<res->getInt(1)<<" "<<res->getString(2)<<std::endl;
stmt->closeResultSet(res);
con->terminateStatement(stmt);
environment->terminateConnection(con);
}catch(oracle::occi::SQLException &e){
std::cout<<e.what();
}
return 0;
}`当运行以下命令时,我得到以下错误:- g++ -I /root/instantclient_11_2/sdk/g++ -L -L $ORACLE/rdbms/lib cpp_db_conn.cpp
错误:- /tmp/ccjcKsxz.o:在函数main': udf.cpp:(.text+0x26): undefined reference tooracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode,void*,void* ()( void,unsigned ),void* ()(void,void*,unsigned ),void ()(void,void*)‘/tmp/ccjcKsxz.o:(.gcc_except_table+0x80):对“oracle的类型信息”的未定义引用::occi::SQLException’collect2: ld返回1个退出状态
发布于 2017-05-13 00:41:25
甲骨文::occi::连接:为什么你在这里有一个空格??\x{e76f}\x{e76f}?
发布于 2018-03-09 09:07:45
我可以告诉你我的案子。显然,这是一个有点错配的问题。
我的环境是一个“MicrosoftSDKV7.0”,默认使用64位编译器
不幸的是,我的oracle客户端是一个32位的版本,它的版本是实例化客户机-Basic-NT-12.1.0.2.0。
我和你犯了同样的错误。
所以,我把我的编译器改为32位。
setenv /x86然后,所有的问题都消失了。
祝你今天愉快。
https://stackoverflow.com/questions/43941702
复制相似问题