2012-04-11 3 views
2

Существующая программа, которая преобразуется для использования Oracle Pro * C, создает проблемы при предварительной компиляции. Он считывает файл из файловой системы, анализирует его и записывает в пару таблиц базы данных.Oracle Pro * C Ошибка предварительного компилятора PCC-S-02201

Там есть метод со следующим определением:

void parse_line(inline) 
char *inline; 
{ 
// do stuff 
} 

При попытке сделать это, я вижу:

Syntax error at line 162, column 13, file myfile.cp: 
Error at line 162, column 13 in file myfile.cp 
char *inline; 
............1 
PCC-S-02201, Encountered the symbol ";" when expecting one of the following: 

    (* const, volatile, an identifier, 

Эта функция декларации синтаксически корректен, насколько я могу судить, так Я должен предположить, что эта ошибка прекомпилятора возникает из-за проблемы в другом месте.

Если вы не вставляете в программу всю программу, есть ли у кого-нибудь предложения относительно нескольких хороших мест, которые я мог бы начать искать?

Мой pcscfg.cfg выглядит следующим образом:

sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include,/usr/lib64/gcc/x86_64-suse-linux/4.1.2/include,/usr/lib64/gcc/x86_64-suse-linux/4.3/include) 
ltype=short 
define=__x86_64__ 
+0

Сын верблюда. Это мне никогда не приходило в голову. Я испытываю недоумение, чтобы вернуть полчаса на работу и посмотреть, исправляет ли это все это. Я не буду! Но я искушаюсь. –

ответ

4

Это заявление является недействительным, поскольку inline это ключевое слово в C и C++ (и может быть использован только в качестве функции спецификатор в C).

Изменить это имя переменной на что-то еще, и это должно пройти через , если вы компилируете как C, а не C++. Я не верю, что стиль синтаксиса определения функции допустим в C++.

+0

Самое странное, что это скомпилировано как встроенная программа Ing. Просто не как программа Pro * C. Тем не менее - изменилось «inline» на «inp_line», и мы предварительно скомпилировали и скомпилировали просто отлично. Благодаря! –

+0

Ну 'inline' классный новый материал, добавленный только как ключевое слово в C99. У C89 этого не было :) – Mat

+0

Да, и, как вы могли догадаться, этот материал _old_. –

Смежные вопросы