我必须教授在 Linux 上使用 C/C++ 针对 Oracle DB 进行数据库编程。因此第一步是在 Linux 上安装 Oracle 11g。
机器配置:主机:Windows 8 Enterprise 64 位 客户机:使用 Virtual Box 4.2.10 的 Fedora 18 XFCE 版本 32 位
我在用着此链接作为指导。
我已经完成了所有步骤,直到“./runInstall”步骤,在链接阶段出现错误:
以下是“/u01/app/oraInventory/logs”日志文件的摘录:
[oracle@localhost logs]$ tail -n 25 installActions2013-03-31_03-14-24PM.log
INFO: /usr/bin/ld: warning: -z lazyload ignored.
/usr/bin/ld: warning: -z nolazyload ignored.
/usr/bin/ld: /u01/app/oracle/product/11.2.0/db_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol 'B_DestroyKeyObject'
/usr/bin/ld: note: 'B_DestroyKeyObject' is defined in DSO /u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so so try adding it to the linker command line
/u01/app/oracle/product/11.2.0/db_1/lib/libnnz11.so: could not read symbols: Invalid operation
INFO: collect2: error: ld returned 1 exit status
INFO: make[1]: *** [/u01/app/oracle/product/11.2.0/db_1/sysman/lib/emdctl] Error 1
INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/db_1/sysman/lib'
INFO: make: *** [emdctl] Error 2
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/u01/app/oraInventory/logs/installActions2013-03-31_03-14-24PM.log' for details.
Exception Severity: 1
INFO: Adding ExitStatus STOP_INSTALL to the exit status set
INFO: Finding the most appropriate exit status for the current application
INFO: Exit Status is -4
INFO: Shutdown Oracle Database 11g Release 2 Installer
INFO: Unloading Setup Driver
[oracle@localhost logs]$
如何修复这个错误?
还有其他方法可以使用 c++ 展示 Oracle DB 编程吗?
如果需要任何其他信息,请告诉我。
答案1
请执行下列操作:
- 跑步
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
- 搜索以下行:
$(MK_EMAGENT_NMECTL)
- 更改为:
$(MK_EMAGENT_NMECTL) -lnnz11
答案2
据我所知,Fedora 上的 Oracle 不是受支持的配置。也许你会更幸运CentOS。由于此 Linux 和 Oracle 自己的 Linux 都是 Red Hat Enterprise Linux 的克隆,因此您可能更幸运地找到已经这样做的人。
无论如何,我的经验(幸运的是长的一个问题是,安装 Oracle 是一件非常痛苦的事情(虽然有些可靠的传言说没有什么变化)。“自动安装脚本”严重损坏,官方说明针对的是完全不同的软件包。有各种奇怪的环境变量必须正确设置(但没有记录)才能正常工作。