【问题标题】:64 bit and 32 bit tools run in one environment64 位和 32 位工具在一个环境中运行
【发布时间】:2013-11-19 05:15:46
【问题描述】:

我有一个脚本 (bash),它调用 6 个工具,其中 4 个是 32 位编译的,其中 2 个是 64 位编译的。一个 32 位和一个 64 位是依赖于 oracle 的工具。由于依赖于 Oracle 的工具依赖于动态库(.so 文件),因此我收到错误为 *.so not found 对于其中一个工具(我猜是我在 ORACLE_HOME 中设置的 32 位或 64 位)。
任何人都可以提出建议,如何处理这种情况?

提前致谢

【问题讨论】:

    标签: c++ oracle build dynamic-linking dynamic-loading


    【解决方案1】:

    在脚本中,在调用 64 位工具之前将 LD_LIBRARY_PATH 设置为 64 位 *.so。

    根据我的理解,可执行文件将采用正确的 *.so,如果 LD_LIBRARY_PATH 中同时存在 32 位和 64 位 *.so,因为加载程序知道忽略错误架构的库。

    欲了解更多信息,请参阅How do shared libraries work in a mixed 64bit/32bit system?

    【讨论】:

    • 谢谢,这个链接很有帮助。
    猜你喜欢
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多