(求助)proc 和gcc 编译问题 关于clntsh库

tongzhipeng5699 2012-05-16 07:03:14
我的环境是虚拟机+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;
}
这个问题我昨天晚上 网上百度了一个晚上都没有解决,求牛人解决。
...全文
508 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtOS1573 2014-11-19
  • 打赏
  • 举报
回复
这个问题是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 "是我机器的安装目录具体以实际情况为准。
motif_linux 2012-09-16
  • 打赏
  • 举报
回复
我今天在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:.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧