ORACLE 10.2 Pro*C précompilateur pas de lecture de fichier d'en-tête
Je suis pré-compilation d'un programme C contenant Pro*C code avec Oracle 10.2 et AIX 5.2
L'Oracle précompilateur lit le $ORACLE_HOME/precomp/admin/pcscfg.cfg file
qui contient la définition de la sys_include variable (à /usr/include
).
La Pro*C compilateur se plaint qu'il ne sait pas ce size_t
type et l'Oracle de l'en-tête des fichiers qui utilisent le size_t
type sont des erreurs de déclaration.
Voici un exemple d'erreur signalés sur le sqlcpr.h
fichier:
extern void sqlglm( char*, size_t*, size_t* );
...........................1
PCC-S-02201, Encountered the symbol "size_t" when expecting one of the following
size_t
est définie dans le stdio.h
fichier d'en-tête dans le /usr/include
répertoire. Je suis notamment la stdio.h
d'en-tête dans ma example.pc
fichier avant de m'inclure la sqlcpr.h
en-tête.
Je suis émission de la commande proc comme suit:
proc iname=example parse=full
Les idées de ce que je fais mal?
OriginalL'auteur David | 2008-11-28
Vous devez vous connecter pour publier un commentaire.
De Metalink
Je suppose que la part de ces deux sysinclude et de comprendre votre question.
OriginalL'auteur EvilTeach
Vous avez à faire assurez-vous que l'option inclure le chemin de recherche de la configuration, tels que tous les répertoires nécessaires sont inclus dans le bon ordre par Pro*C.
Par exemple sur CentOS 6.5-je indiquer l'ordre suivant (dans le
pcscfg.cf
):Ce fichier de configuration est lu par
proc
de$ORACLE_HOME/precomp/admin/pcscfg.cfg
.Apparemment, le fichier par défaut écrite par le programme d'installation Oracle est souvent sous-optimale, en raison par exemple des listes d'un non-existant GCC chemin d'accès et/ou utilise une problématique chemin de l'ordre.
Avec un ordre différent-je obtenir le même
size_t
des messages d'erreur liées (quand permutant les 4 premières lignes de (1,2,4,3) ).Quand permutant les 4 premières lignes de (1,3,2,4) et y compris
<limits.h>
,proc
va même dans une mémoire de l'allocation de boucle infinie jusqu'à ce qu'il soit tué par l'OOM killer.Comme une solution de contournement, vous pouvez également spécifier le
sys_include
option sur laproc
ligne de commande, e.g:OriginalL'auteur maxschlepzig
Deux chose à noter, quand je jouais avec mon pcscfg.fichier cfg.
1 Rappelez-vous, il ne prend pas en charge "de l'espace", de sorte que tout le chemin, y compris l'espace doit être écrit en "court" de style. par exemple:
SYS_INCLUDE=D:\Progra~1\Micros~1.0\VC\include
Vous pouvez utiliser dir /x dans windows pour obtenir la version courte de l'noms
2, Il apparaît que, dans mon cas au moins, INCLURE doivent être écrits avant que toutes ces options de trucs. I. E. Si
ne fonctionne pas, essayez
À la place.
OriginalL'auteur AERYEN
J'ai modifié placer /usr/include/linux avant tout le reste. Cette intervention a permis à la fois l'impossibilité de trouver des stddef.h et ne sachant pas ce que size_t a été. Le placer à côté de /usr/include fixe l'ancien.
Modifié pcscfg.cfg:
sys_include=(/usr/include/linux,$ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/lib/gcc/i386-redhat-linux/3.4.5/include,/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/include,/usr/lib/gcc/i586-suse-linux/4.1.2/include,/usr/lib/gcc/i586-suse-linux/4.3/include)
ltype=court
(CentOS 6.3, oracle 11g)
OriginalL'auteur ohlemacher
Utilisation sys_include pour le chemin d'accès contenant les variables d'environnement ou de Visual Studio variables. Si le chemin est simple chemin, utilisez la commande "include", d'autre "sys_include"
J'ai ce problème sur Visual Studio 2013, pour la compilation .fichiers pc, avec la modification ci-dessus, tous ai travaillé.
OriginalL'auteur MagicWorld
Ajouter un drapeau de compilation ligne
pcscfg.cfg
de faire Oracle du pré-compilateur compiler avec pas de système de fichier d'en-tête des erreurs de syntaxe:Que c'est. Il devrait maintenant précompiler sans erreur.
OriginalL'auteur Ben Abarbanel
J'ai eu le même problème ("PCC-S-02201, a Rencontré le symbole ..."). J'ai écouté les deux conseils ci-dessus.
sys_include
et assurez-vous que le chemin d'accès au répertoire est celui qui est le compilateur est vraiment à utiliser. Valeurs par défaut utilisé par Pro*C en général n'existent pas. Compiler un 'Bonjour le Monde' programme avecgcc -v -c <prog.c>
et vérifierCOMPILER_PATH
sys_include
dans l'ordre (pas vraiment sûr si important, mais quand même.)de sorte que le PCC-S-02201 s'en alla.
OriginalL'auteur yogmk