Question

I'm converting some legacy code to Oracle Pro*C. I'm on a Linux box using Oracle 11.2. We are using ".cp" as the suffix for Pro*C source files. I'm not much of a C developer so I am sort of banging around in the dark as I go.

At one point I have some code in a shared library file, "assign_field.cp," so in myprog.cp I am doing

EXEC SQL INCLUDE "assign_field.cp";

Now, in assign_field.cp, I have a very common line of Pro*C code...

EXEC SQL INCLUDE SQLCA;

For this line, along with many others, I am seeing the following compiler output:

assign_field.cp:35: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âSQLâ

It looks as though the compiler isn't recognizing that this is Pro*C code.

I've got other include files that look very similar to assign_field.cp but which appear to compile just fine when included.

Était-ce utile?

La solution

Don't include the C files (in this case, .cp files) in the program's flow. Compile them separately; refer only to the function's declaration, such as in an included .h file. Refer to the compiled object files (probably .o) in the call to the linker in the makefile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top