Oracle and C-Compiling Error

For security reasons a server offering webservices should be installed new: It is used to run CGI-Webapplications manipulating data in an Oracle 8.1.8. database via webformulas. I first installed Solaris and then Oracle 8.1.8 and the webserver. Both are running without errors. In the next step I used the compiled Files from the backup copy: The webservices are running. To modify the applications a new compilation is necessary. I dir not panipulate *.c files. I just tried to compile it. CC or GCC did not work. I got the information, that make-files are used so I tried gmake with the following mistake. How can I make it run? servernumberone[62]% gmake unregister.c gcc -xO2 -Xa -xstrconst -xF -mr -xarch=v8 -xcache=16/32/1:1024/64/1 -xchip=ultra -D_REENTRANT -K PIC -DPRECOMP -I/oracle/u1/app/oracle/product/8.1.7/precomp/hdrs -I/oracle/u1/app/oracle/product/8.1.7/precomp/public -I/oracle/u1/app/oracle/product/8.1.7/precomp/include -I/oracle/u1/app/oracle/product/8.1.7/oracore/include -I/oracle/u1/app/oracle/product/8.1.7/oracore/public -I/oracle/u1/app/oracle/product/8.1.7/oracore/port/include -I/oracle/u1/app/oracle/product/8.1.7/nlsrtl/include -I/oracle/u1/app/oracle/product/8.1.7/slax/include -I. -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD -c -o unregister.o unregister.c gcc: cannot specify -o with -c or -S and multiple compilations gmake: *** [anmeldung.o] Error 1 servernumberone[63]%
1 answer

Solution for the Oracle and C-Compiling Error

Just have a look on the *.pc Files in the same directories. You must not compile the *.c Files but the *.pc Files by using "make all". The CC-Compiler is part of Oracle, but Oracle is using a Precompiler (proC) to compile *.pc-Files (see a part of unregister.pc) with Oracle Syntax into compileable C-Code. Then this code is compiled to executeable binaries. That should work with the standardconfiguration after installation.

---------------------------------------------- BEGINPARTOF: UNREGISTER.PC -----------------------------------------------
#ifdef DEBUG
fprintf(fpdebug,"lvanr %d.\n",lvanr);
fprintf(fpdebug,"semester %s.\n",semester);
fprintf(fpdebug, "matnr %d.\n", matnr);
fflush(fpdebug);
#endif

EXEC SQL CALL datamgr.unregister(:lvanr, :semester, :matnr, :datum, :erfolg) INTO sqlerr;

if(sqlerr != 0) {
if(sqlerr == 100) {
SendAnswerFile(0,"You are not registered.");
} else {
snprintf(buffer, BUFFER_LENGTH, Internal Error, Please contact the admin. Errorcode: %d", sqlerr);
SendAnswerFile(0, buffer);
}
}

if (erfolg == 0) {
SendAnswerFile(0,"You are not registered.");
}

EXEC SQL COMMIT WORK RELEASE;

SendAnswerFile(0,"You are unregistered successfully.");
}
else
SendAnswerFile(0,"Wrong identification, Please check your number!");
}
---------------------------------------------- ENDPARTOF: UNREGISTER.PC -----------------------------------------------

Taggings: