Ошибки прекомпилятора Oracle Pro * C для операторов EXEC SQL во включенных файлах - PullRequest
0 голосов
/ 05 октября 2011

Я конвертирую какой-то устаревший код в Oracle Pro * C. Я на Linux box с использованием Oracle 11.2. Мы используем ".cp" в качестве суффикса для исходных файлов Pro * C. Я не большой разработчик C, поэтому я как бы бродил в темноте по ходу дела.

В какой-то момент у меня есть некоторый код в файле общей библиотеки, "assign_field.cp", поэтому в myprog.cp я делаю

EXEC SQL INCLUDE "assign_field.cp";

Теперь, в assign_field.cp, у меня есть очень распространенная строка кода Pro * C ...

EXEC SQL INCLUDE SQLCA;

Для этой строки, наряду со многими другими , я вижу следующий вывод компилятора:

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

Похоже, что компилятор не распознает, что это код Pro * C.

У меня есть другие включаемые файлы, которые очень похожи на assign_field.cp, но, кажется, прекрасно компилируются, когда включены.

1 Ответ

1 голос
/ 05 октября 2011

Не включайте файлы C (в данном случае, файлы .cp) в поток программы. Скомпилируйте их отдельно; ссылаются только на объявление функции, например, во включенном файле .h. Обратитесь к скомпилированным объектным файлам (вероятно, .o) в вызове компоновщика в make-файле.

...