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.

Comments (1)
On AIX, we need to add the following macro to support 64 bit IO function.
gcc -D_LARGE_FILES ......
Posted by anysql | March 18, 2009 11:50 AM