是否有人让Oracle Pro*C使用非Oracle用户帐户在OS X 10.6上工作

是否有人让Oracle Pro*C使用非Oracle用户帐户在OS X 10.6上工作,oracle,macos,osx-snow-leopard,Oracle,Macos,Osx Snow Leopard,我已经在10.6上成功安装了本机Oracle,并且可以使用“Oracle”帐户(即安装软件的同一操作系统用户)成功编译和执行示例Pro*C代码。那是一份有趣的工作。它甚至可以与叮当声一起工作 但是,在我们的正常开发环境中,源代码、构建脚本、生成文件等都属于不同的Unix组和用户,他们可以访问一组受限的Oracle工具(sqlplus、exp、proc等) 尝试从oracle安装中使用sqlplus时出现了(已知问题) 尽管DYLD_LIBRARY_路径设置正确,但仍然存在这种情况。有人做了更多的

我已经在10.6上成功安装了本机Oracle,并且可以使用“Oracle”帐户(即安装软件的同一操作系统用户)成功编译和执行示例Pro*C代码。那是一份有趣的工作。它甚至可以与叮当声一起工作

但是,在我们的正常开发环境中,源代码、构建脚本、生成文件等都属于不同的Unix组和用户,他们可以访问一组受限的Oracle工具(sqlplus、exp、proc等)

尝试从oracle安装中使用sqlplus时出现了(已知问题)

尽管DYLD_LIBRARY_路径设置正确,但仍然存在这种情况。有人做了更多的调查,认为在这个过程开始之前,图书馆的路径在某个地方被取消了

我放弃了,只是改用instantclient

不幸的是,instantclient SDK仅限于OCCI—它不包括pro*c编译器

因此,我再次尝试让“dev”用户能够在oraclebin目录中执行“proc”。我已经解决了一个动态库问题(使用符号链接)和各种文件权限问题(需要向/precomp目录层次结构中的文件授予-r)

现在我得到了一个内核转储(在oracle用户下运行时不会发生)


有什么建议吗?有人真的成功地做到了这一点吗?

我遇到的第一个问题是通过授予对oracle安装下的/precomp目录和子目录的读取权限来解决的(然后对该问题进行了编辑,以解决我的下一个问题)

默认情况下,proc编译器写入源代码文件所在的目录,而不是本地目录。简单修复-按路径指定目标文件名。这成功地生成了.c文件

要编译它,需要访问并指定要链接的正确库(instantclient 64位库在这里可以使用)


最后,将示例修改成适当的形状。

Ah,当然-简单的权限错误(感谢谷歌)-proc编译器试图在与源代码相同的目录中编写,而不是在本地。很好的防御性编码和错误处理。再进一步-现在我只需要让我的链接工作到标准的sqlca等结构。这是否意味着你可以完成任务?如果是的话,写下你自己的答案并接受它。还没有,但希望很快。结果证明它是“有趣的”(所需的示例make文件等不在文档中)。
dyld: Library not loaded: /b/227/sqlplus/lib/libsqlplus.dylib
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