zoukankan      html  css  js  c++  java
  • Ubuntu 12.10 x64 Oracle11g Pro *c/c++ 环境配置

    一开始在Oracle的bin目录中调用proc会有很多错误,找不到库,然后编译错误等等。下面说一下我的环境配置过程:

    1)设置动态库路径:

    可以到etc/profile里面加入,不过我是写到~/.bashrc文件里的,加入下面的语句:

    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib;
    export LD_LIBRARY_PATH

    重新打开终端就可以了。

    2)编译问题有点多,我这里只写我目前遇到的问题,和我的解决办法

    首先是编译跳出N多屏长度的error,终端上滚动条托会顶部也显示不完,最后只好编译的时候$ORACLE_HOME/bin/proc file.pc | more

    分屏显示,看到有很多.h文件找不到,在网上查资料,发现需要去配置如下文件:

    $ORACLE_HOME/precomp/admin/pcscfg.cfg

    进去一看,include里面包含了很多redhat和suse的路径,我这里可是用的ubuntu喔,果断把redhat和suse相关的路径都删除,但是这个时候我该写什么路径了,看看刚才编译的报错,有一个叫stddef.h的文件,这不是c的标准库的定义文件嘛,说明proc需要调用c语言的标准库,这不就好办了嘛,方法如下:

    找标准库的头文件路径:

    sudo find / -name "stddef.h"

    我的搜索结果如下:

    /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
    /usr/lib/gcc/x86_64-linux-gnu/4.4/include/stddef.h
    /usr/lib/syslinux/com32/include/bitsize/stddef.h
    /usr/lib/syslinux/com32/include/stddef.h
    /usr/src/linux-headers-3.5.0-17/include/linux/stddef.h
    /usr/include/linux/stddef.h

    第一个路径就是我需要的,其他的应该不是喔。当然我没有试验过,但是gcc的肯定没错,所以我这里使用第一个,将路径写道pcscfg.cfg文件中去即可。

    好了继续编译...

    这次proc filename.pc文件没有问题,proc生成了.c的c语言源文件,然后使用gcc filename.c -o main 又是错误,提示“致命错误:sqlca.h:没有那个文件或目录”,所以我马上使用find命令找到了这个文件的路径,然后gcc filename.c -I $ORACLE_HOME/precomp/public -o main依然错误,这次是login.c:(.text+0x1b9):对‘sqlcxt’未定义的引用,这一看应该还是没有链接到库文件。最后查资料,果然还有库文件需要说明,最后成功通过编译的完整命令如下:

    gcc login.c -I $ORACLE_HOME/precomp/public -L$ORACLE_HOME/lib -lclntsh -o main

    最后执行main,成功运行...

    好的这样就完成了pro*c/c++的环境搭建了。过两天再看看windows下的环境搭建,先写到这里。

  • 相关阅读:
    邦定lua函数到C里做为回调
    cocos2d-x 获取图片的某像素点的RGBA颜色 -转
    地图跟着主角视角滚动
    用 eclipse ndk 编译 cocos2d-x for Android
    cocos2d-x 安卓环境配置 -转
    Hacker(16)----防范端口扫描与嗅探
    Hacker(15)----嗅探原理
    Hacker(14)----扫描目标计算机端口
    Hacker(13)----搜集目标计算机的重要信息
    Hacker(12)----个人计算机安全防护策略
  • 原文地址:https://www.cnblogs.com/vk83/p/2970417.html
Copyright © 2011-2022 走看看