On Linux/Unix we can use gcc to compile OCI source code. Use the following command to compile the text unload utility as 64 bit binary.
gcc -m64 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I${ORACLE_HOME}/rdbms/public -I${ORACLE_HOME}/rdbms/demo -L${ORACLE_HOME}/lib -lclntsh -o ociuldr.bin ociuldr.c
I usually compile it as 32 bit executable file by the following command.
gcc -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I${ORACLE_HOME}/rdbms/public -I${ORACLE_HOME}/rdbms/demo -L${ORACLE_HOME}/lib32 -lclntsh -o ociuldr.bin ociuldr.c
On IBM AIX, you need to use the following command to compile ociuldr to support 64 bit IO feature.
gcc -D_LARGE_FILES -I${ORACLE_HOME}/rdbms/public -I${ORACLE_HOME}/rdbms/demo -L${ORACLE_HOME}/lib32 -lclntsh -o ociuldr.bin ociuldr.c
On windows, I will use Microsoft Visual C++ as compiler. Run the following command to compile it.
set ORACLE_HOME=c:/oracle/product/10.2.0
set INCLUDE=%LIB%;%ORACLE_HOME%/oci/include
set LIB=%INCLUDE%;%ORACLE_HOME%/oci/lib/msvc
cl /ML /Feociuldr.exe ociuldr.c oci.lib
For the Pro*C compilation, you just need to change the include file path and library path.

本文解决了一个在Linux环境下使用OCIuldr时遇到的问题,包括如何正确配置32位和64位编译命令,以确保与Oracle数据库库文件兼容。提供了在不同操作系统上编译OCI程序的具体步骤。
3518

被折叠的 条评论
为什么被折叠?



