libstdc++.so.5 :could not read symbols:FIle in wrong format是什么错误?

出错信息是:/usr/lib/libstdc++.so.5:couldnotreadsymbols:FIleinwrongformatcollect2:ldreturne... 出错信息是:/usr/lib/libstdc++.so.5 :could not read symbols:FIle in wrong format
collect2:ld returned 1 exit status
我的环境是64位的rhel5.6和oracle10g,下面是代码

#include <iostream>
#include <stdio.h>
#include <occi.h>
#include<string>
using namespace oracle::occi;
using namespace std;
int main()
{

Environment *env;

Connection *conn;

Statement *stmt;

//连接

string struser("scott");

string strpwd("scott");

string strconn_string("127.0.0.1:1521/orcl");

env = Environment::createEnvironment(Environment::OBJECT);

conn = env->createConnection(struser,strpwd,strconn_string);

if(NULL!=conn)

cout<<"conn success"<<endl;

else

cout<<"conn failed"<<endl;

string strsql("select id,name from test");

stmt = conn->createStatement(strsql);

ResultSet * rset = stmt->executeQuery();

while( rset->next()){

int id = rset->getInt(1);

string strname = rset->getString(2);

cout << "id=" << id << "name=" << strname <<endl;

}

stmt->closeResultSet(rset);

conn->terminateStatement(stmt);

env->terminateConnection(conn);

Environment::terminateEnvironment(env);

return 0;

}
编译的语句为:
g++ -o connclient connclient.cpp -L/usr/lib/oracle/10.2.0.3/client64/lib -I/usr/include/oracle/10.2.0.3/client64 -locci -lclntsh /usr/lib/libstdc++.so.5

这个问题怎么解决呢?在线等待好心人解决
展开
 我来答
lougx
2012-11-21 · TA获得超过149个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:158万
展开全部
执行: file /usr/lib/libstdc++.so.5 看看,我想它是32位的,而你是想要编译64位代码,所以出错。你需要指定64位的标准C库。

LDFLAGS="-L/usr/lib64 -L/lib64"
追问
你好 ,请问这句 LDFLAGS="-L/usr/lib64 -L/lib64"  放在什么地方呢,加在我那条编译的语句里吗?
追答
这是环境变量的定义。

或者你直接可以 在g++ 编译语句中加上 “-L/usr/lib64 -L/lib64” 当然,你首先要确定你的64位c库的位置。我这里给出的只是一个sample.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式