oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏!

-----------------------------------------------------------------------------------------------------------------------------------

(求助)proc 和gcc 编译问题 关于clntsh库 [问题点数:40分,结帖人tongzhipeng5699]

我的环境是虚拟机+UBUNTU11.10+ORACLE10G 
按照网上的方法总算装好了,但是发现编译时会出问题
我的oracle10g是建了一个oracle用户然后在oracle用户下安装的。
在oracle用户下:
 proc first.pc 生成first.c
gcc first.c -lclntsh的时候会报如下错误:
/usr/bin/ld: cannot find -lclntsh
collect2: ld 返回 1
但是我使用
sudo gcc first.c -lclntsh
却能编译成功,并且运行正常。
不用sudo的话也可以
但是要写成
gcc first.c -L $ORACLE_HOME/lib -lclntsh才行
环境变量我在.bashrc和/etc/profile都配置并source过了,应该不是环境变量的问题,我这里还是贴出来吧
export ORACLE_HOME=/opt/ora10g
export ORACLE_OWNER=oracle
export ORACLE_SID=ora1
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:.:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:.
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'

代码更不可能有问题了,不过我也还贴出来吧,求帮忙
#include <stdio.h>

int main () {
exec sql include sqlca;
EXEC SQL BEGIN DECLARE SECTION;
char userpwd[30]="scott/tiger";
char var_name[25]={0};
EXEC SQL END DECLARE SECTION;
exec sql connect:userpwd;
exec sql select first_name into :var_name from s_emp where id=1;
printf("%s\n", var_name);
exec sql commit work release;
}
这个问题我昨天晚上 网上百度了一个晚上都没有解决,求牛人解决。

更多1分享到:
相关知识库: OpenCV 软件测试 C++ C语言
 
 

回复次数:2

关注
motif_linux
motif_linux
本版等级:

 
#1 得分:0回复于: 2012-09-16 15:53:17
我今天在ubuntu 12.04 64bit上安装oracle 11gR2时也出现了类似这种情况,在编译日志文件/opt/oracle/ora11g/install/make.log 中我发现有很多/usr/bin/ld: cannot find -lclntsh 这种错误,在这一句后面是说找不到 /usr/lib64/libpthread_noshared.a ,ubuntu12.04下是没有/usr/lib64这个文件夹的,所以我mkdir /usr/lib64,然后 ln -s /usr/lib/x86_64-linux/gnu/libpthread_noshared.a  /usr/lib64/,百度了好久,说libc_noshared.a也要做这样一个软链接,然后我的问题就解决了。

补充一句:我没有设置这个export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:.

关注
developerof
核心转储中
本版等级:

 
#2 得分:0回复于: 2014-11-19 20:28:53
这个问题是gcc在/usr/lib 或是 /usr/local 下找不到libclntsh.so这个动态库造成的。解决办法:找到oracle 的安装路径 cd $ORACLE_HOME/lib 找到 libclntsh.so动态库文件的路径 执行sudo ln-sv /opt/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so /usr/lib/libclntsh.so  "/opt/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so "是我机器的安装目录具体以实际情况为准。

oracle 编译中一个关于clntsh 库的一个 帖子 ,收藏!的更多相关文章

  1. 关于plsqldev无法正常加载oracle instantclient中的oci.dll的其中一个原因

    事情的经过是这样的: 1. 新安装了windows10 系统,装了plsqldev 和 oracle instantclient,以及 instantclient sqlplus. 2.设置好了ORA ...

  2. linux 怎么使用一个c/c++库

    linux 怎么使用一个c/c++库 使用一个库,库有动态和静态之分. 静态库只要能够编译通过,运行时就没有提示缺少这个库可能,因为把这个库就是这个使用者的一部分了.动态库.两部分.1 库信息的注册 ...

  3. Ubuntu中安装编译并测试HTK语音识别库

    1.在网上看到首先必须确保电脑上安装了g++和libx11 g++ --version //检测g++版本 sudo apt-get install libx11-dev:i386 2.然后可从HTK ...

  4. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  5. vs2008中xlslib与libxls库的编译及使用

    C++用来操作Excel的方法很多,但是涉及到跨平台,同时又要对Excel的读写操作兼顾,而且免费的库,那应该是要用xlslib和libxls了.由于技术比较菜,折腾这个折腾了一个星期了.最开始是使用 ...

  6. QT 编译遇到重定义;不同的基类型&在QT中使用C++ lib库

    最近在使用osg和qt开发,在集成osg时候因为我使用的qt版本为非opengl的版本,导致qt自己封了一遍opengl的一些基类变量如double 这时候就会跟osg中声明的opengl的类型冲突, ...

  7. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  8. 第一个lucene程序,把一个信息写入到索引库中、根据关键词把对象从索引库中提取出来、lucene读写过程分析

    新建一个Java Project :LuceneTest 准备lucene的jar包,要加入的jar包至少有: 1)lucene-core-3.1.0.jar     (核心包) 2) lucene- ...

  9. 一个简单的批量更新oracle 数据库中 最近的服务商名称的数据

    有一个需求是这样的,我们需要更新数据库中的数据,数据时这样的 1.大约50万以上 2. 数据中有较多的重复数据 3. 需要将表中最近的代理商的名称赋值给行中的服务商名称 4. 代理商的名称可能有多个, ...

随机推荐

  1. Caffe学习系列(4):激活层(Activiation Layers)及参数

    在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...

  2. myeclipse 2014新建maven web 项目步骤

    首先在myeclipse中配置maven的安装路径: 在pom.xml中加上: 1 2 3 4 5 6 7 8 9 10  <plugins>           <plugin&g ...

  3. [CareerCup] 5.8 Draw Horizonatal Line 画横线

    5.8 A monochrome screen is stored as a single array of bytes, allowing eight consecutive pixels to b ...

  4. 更简单地进行Auto Layout--SnapKit 支持swift

    OC下的autolayout神器Masonry大家已经很熟悉了.但是masonry在swift下使用并不方便.所以同一个团队开发出了swift下的autolayout库:SnapKitsnapkit从 ...

  5. C# 有关命名法

    常用的几种:匈牙利命名法,骆驼命名法,帕斯卡(pascal)命名法就说了. 总结下VS所用的标准命名: 1 ADO.NET 命名规范 数据类型 数据类型简写 标准命名举例 Connection con ...

  6. NFine框架的T4模板

    1.前言 前段时间在网上看到一个开源框架很好的.开源:ASP.NET MVC+EF6+Bootstrap开发框架,写代码就是比较比较麻烦,分层比较多,对于我这种偷懒的人就想到了写一个T4模板.不了解框 ...

  7. webSocket实现web及时聊天的例子

    概述 websocket目前虽然无法普及应用,未来是什么样子,我们不得而知,但现在开始学习应用它,只有好处没有坏处,本随笔的WebSocket是版本13(RFC6455)协议的实现,也是目前webso ...

  8. nginx的笔记

    nginx 的安装 下载地址: http://nginx.org/download/nginx-1.4.2.tar.gz 安装准备: nginx依赖于pcre库,要先安装pcre yum instal ...

  9. GCD 深入理解:第二部分

    在本系列的第一部分中,你已经学到超过你想像的关于并发.线程以及GCD 如何工作的知识.通过在初始化时利用 dispatch_once,你创建了一个线程安全的 PhotoManager 单例,而且你通过 ...

  10. Beta项目冲刺汇总贴

    第一天 http://www.cnblogs.com/Allenbi/p/5003704.html 第二天 http://www.cnblogs.com/Allenbi/p/5020820.html ...