【发布时间】:2010-08-11 03:36:26
【问题描述】:
我已经在 10.6 上成功安装了本机 Oracle,并且可以使用“oracle”帐户(即安装该软件的同一操作系统用户)成功编译和执行示例 Pro*C 代码。那是一份有趣的工作。它甚至可以与 clang 一起使用。
但是,在我们的正常开发环境中,源代码、构建脚本、make 文件等由不同的 Unix 组和用户拥有 - 可以访问一组受限的 Oracle 工具(sqlplus、exp、proc 等) .
尝试从 oracle 安装中使用 sqlplus 给出了(已知问题)
dyld: Library not loaded: /b/227/sqlplus/lib/libsqlplus.dylib
尽管 DYLD_LIBRARY_PATH 确实设置正确。做过更多调查的人认为,在进程开始之前,库路径的某处未设置。
我放弃了,改用 Instantclient。
不幸的是,instantclient SDK 只是 OCCI - 它不包括 pro*c 编译器。
所以我回到尝试让“dev”用户能够在 oracle bin 目录中执行“proc”。我已经解决了一个 dylib 问题(使用符号链接)和各种文件权限问题(需要将 -r 授予 /precomp 目录层次结构中的文件)。
现在我得到一个核心转储(在 oracle 用户下运行时不会发生)
System default option values taken from:
/Users/oracle/product/10.2.0/db_1/precomp/admin/pcscfg.cfg
INTERNAL ERROR: Failed assertion [PGE Code=90105]
Segmentation fault
有什么建议吗?有没有人真正成功地做到了这一点?
【问题讨论】:
-
啊,当然 - 简单的权限错误(感谢 Google) - proc 编译器试图在与源相同的目录中写入,而不是在本地。很好的防御性编码和错误处理。更进一步 - 现在我只需要让我的链接工作到标准 sqlca 等结构。
-
这是否意味着您可以关闭任务?如果是这样,请输入您自己的答案并接受它。
-
还没有,但希望很快。事实证明这很“有趣”(所需的示例制作文件等不在文档中)。
标签: oracle macos osx-snow-leopard