Que faire quand XCode ne trouve pas un header ?

Le
unbewusst.sein
j'ai downloadé un exemple d'Apple (à propos de launchd) qui ne compile
pas pour une raison très simple : XCode ne trouve pas le header
"stdarg.h" qui est pourtant sur ma bécanne, par exemple là :
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/inc
lude/stdarg.h

(il y en a plusieurs verions, c'est un "classique")

que faire d'une manière générale dans ces cas là ?
c'est une histoire de PATH de recherche dans XCode ?

--
« Le verbe aimer est difficile à conjuguer :
son passé n'est pas simple, son présent n'est qu'indicatif,
et son futur est toujours conditionnel. »
(Jean Cocteau)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Franck
Le #22230051
On 09/06/2010 06:18, Une Bévue wrote:
que faire d'une manière générale dans ces cas là ?



S'assurer que le SDK sélectionné dans XCode est bien le bon...

c'est une histoire de PATH de recherche dans XCode ?



En principe on n'a pas à se soucier de ce problème du moment que le b on
SDK est sélectionné ;)
unbewusst.sein
Le #22230171
Franck
> que faire d'une manière générale dans ces cas là ?

S'assurer que le SDK sélectionné dans XCode est bien le bon...

> c'est une histoire de PATH de recherche dans XCode ?

En principe on n'a pas à se soucier de ce problème du moment que le bon
SDK est sélectionné ;)



ben justement, c'est le bon !
avoir copié le "bon" header dans mon rep, ça compile bien MAIS ça se
termine par "Segmentation Fault" sur un des deux exec...

j'ai lu qqpart que la version actuelle (chez moi Version 3.2.2) de XCode
est "assez" buggée, une autre ne devrait pas tarder à sortir qui
inclurait XCode + Interface Builder en une seule app.
--
« La révolution ne supprime pas les privilèges,
elle se borne à changer les privilégiés. »
(Philippe Bouvard)
Paul Gaborit
Le #22230351
À (at) Wed, 9 Jun 2010 06:18:54 +0200,
(Une Bévue) écrivait (wrote):

j'ai downloadé un exemple d'Apple (à propos de launchd) qui ne compile
pas pour une raison très simple : XCode ne trouve pas le header
"stdarg.h" qui est pourtant sur ma bécanne, par exemple là :
/Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/inc
lude/stdarg.h

(il y en a plusieurs verions, c'est un "classique")

que faire d'une manière générale dans ces cas là ?
c'est une histoire de PATH de recherche dans XCode ?




Plutôt un truc lié à gcc. Que dit la commande suivante :

% gcc -print-search-dirs


PS: XCode est-il à jour ? La version courante de gcc pour 10.6 est
plutôt la version 4.2.1 que la 4.0.1.

--
Paul Gaborit -
unbewusst.sein
Le #22230431
Paul Gaborit

Plutôt un truc lié à gcc. Que dit la commande suivante :

% gcc -print-search-dirs


zsh-% gcc -print-search-dirs
install: /usr/lib/gcc/i686-apple-darwin10/4.2.1/
programs:
=/usr/libexec/gcc/i686-apple-darwin10/4.2.1/:/usr/libexec/gcc/i686-apple
-darwin10/4.2.1/:/usr/libexec/gcc/i686-apple-darwin10/:/usr/lib/gcc/i686
-apple-darwin10/4.2.1/:/usr/lib/gcc/i686-apple-darwin10/:/usr/libexec/gc
c/i686-apple-darwin10/4.2.1/:/usr/libexec/gcc/i686-apple-darwin10/:/usr/
lib/gcc/i686-apple-darwin10/4.2.1/:/usr/lib/gcc/i686-apple-darwin10/:/us
r/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/bin/
i686-apple-darwin10/4.2.1/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../
../../i686-apple-darwin10/bin/
libraries:
=/lib/i686-apple-darwin10/4.2.1/x86_64/:/lib/x86_64/:/usr/lib/i686-apple
-darwin10/4.2.1/x86_64/:/usr/lib/x86_64/:/usr/lib/gcc/i686-apple-darwin1
0/4.2.1/x86_64/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64/:/usr/lib/
gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/lib/i686-a
pple-darwin10/4.2.1/x86_64/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/../..
/../../i686-apple-darwin10/lib/x86_64/:/usr/lib/gcc/i686-apple-darwin10/
4.2.1/../../../i686-apple-darwin10/4.2.1/x86_64/:/usr/lib/gcc/i686-apple
-darwin10/4.2.1/../../../x86_64/:/lib/i686-apple-darwin10/4.2.1/:/lib/:/
usr/lib/i686-apple-darwin10/4.2.1/:/usr/lib/:/usr/lib/gcc/i686-apple-dar
win10/4.2.1/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/:/usr/lib/gcc/i686-a
pple-darwin10/4.2.1/../../../../i686-apple-darwin10/lib/i686-apple-darwi
n10/4.2.1/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple
-darwin10/lib/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-appl
e-darwin10/4.2.1/:/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../


moi j'ai utilisé celui ci :
zsh-% locate stdarg.h
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Kernel.framewo
rk/Versions/A/Headers/stdarg.h

ie copié dans le rép du projet, mais bon ça se termine par un
"Segmentation fault" alors que le projet vient de chez Mr Apple...

dans le projet c'est bien le "SDKs/MacOSX10.4u.sdk" qui est choisi.

PS: XCode est-il à jour ? La version courante de gcc pour 10.6 est
plutôt la version 4.2.1 que la 4.0.1.



moi j'ai XCode Version 3.2.2 :
Component versions
Xcode IDE: 1650.0
Xcode Core: 1648.0
ToolSupport: 1631.0


téléchargée le 14 05 2010...
--
« La révolution ne supprime pas les privilèges,
elle se borne à changer les privilégiés. »
(Philippe Bouvard)
Franck
Le #22230491
On 09/06/2010 09:56, Une Bévue wrote:
j'ai lu qqpart que la version actuelle (chez moi Version 3.2.2) de XCod e
est "assez" buggée, une autre ne devrait pas tarder à sortir qui
inclurait XCode + Interface Builder en une seule app.



Des échos que j'ai eu de connaissances actuellement à la WWDC, cette
future version (XCode 4) en est vraiment à ses débuts, n'est pas
vraiment exploitable, et ne devrait pas être disponible avant de
nombreux mois...

Et j'utilise XCode 3.2.2 (et même 3.2.3 en tant que dev iPhone
enregistré) régulièrement sans qu'il ne pose trop de problèmes (m ême si
effectivement il plante parfois).
unbewusst.sein
Le #22230541
Une Bévue
> PS: XCode est-il à jour ? La version courante de gcc pour 10.6 est
> plutôt la version 4.2.1 que la 4.0.1.



j'ai loupé gcc :
zsh-% gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)

--
« La révolution ne supprime pas les privilèges,
elle se borne à changer les privilégiés. »
(Philippe Bouvard)
unbewusst.sein
Le #22230561
Franck

Des échos que j'ai eu de connaissances actuellement à la WWDC, cette
future version (XCode 4) en est vraiment à ses débuts, n'est pas
vraiment exploitable, et ne devrait pas être disponible avant de
nombreux mois...



bon, ça ne m'étonne pas.

Et j'utilise XCode 3.2.2 (et même 3.2.3 en tant que dev iPhone
enregistré) régulièrement sans qu'il ne pose trop de problèmes (même si
effectivement il plante parfois).



à part les pbs de headers non trouvés (mais de projet made in Apple au
temps <= 10.4) je n'ai eu qu'un pb mais avec IB qui me présente la
fenêtre dans l'orde inverse au run de celui demandé sous IB.
--
« La révolution ne supprime pas les privilèges,
elle se borne à changer les privilégiés. »
(Philippe Bouvard)
Paul Gaborit
Le #22231021
À (at) Wed, 9 Jun 2010 10:55:17 +0200,
(Une Bévue) écrivait (wrote):

Paul Gaborit

Plutôt un truc lié à gcc. Que dit la commande suivante :

% gcc -print-search-dirs


zsh-% gcc -print-search-dirs
install: /usr/lib/gcc/i686-apple-darwin10/4.2.1/


[...]

moi j'ai utilisé celui ci :
zsh-% locate stdarg.h
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks/Kernel.framewo
rk/Versions/A/Headers/stdarg.h



Ne jamais faire cela avec stdarg.h ! Il *faut* absolument celui lié au
compilateur *et* au système.

Le fichier stdarg.h correct pour votre gcc est
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdarg.h

Si ce fichier n'existe pas, c'est que gcc (et donc sans doute XCode et
tout le package developper) est mal installé.

--
Paul Gaborit -
unbewusst.sein
Le #22231081
Paul Gaborit

Ne jamais faire cela avec stdarg.h ! Il *faut* absolument celui lié au
compilateur *et* au système.

Le fichier stdarg.h correct pour votre gcc est
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdarg.h

Si ce fichier n'existe pas, c'est que gcc (et donc sans doute XCode et
tout le package developper) est mal installé.



il existe ce fichier, installé par un installer Apple.

bon, ben ce path "/usr/lib/gcc/i686-apple-darwin10/4.2.1/" est bien dans
le path du gcc (librairies) que j'utilise, je ne pige pas pourquoi gcc
ne l'a pas trouvé alors.

bon après nouvelle compil, plus de seg fault et ça roule...

merci !

--
« La révolution ne supprime pas les privilèges,
elle se borne à changer les privilégiés. »
(Philippe Bouvard)
Paul Gaborit
Le #22231221
À (at) Wed, 9 Jun 2010 14:14:42 +0200,
(Une Bévue) écrivait (wrote):

Paul Gaborit

Ne jamais faire cela avec stdarg.h ! Il *faut* absolument celui lié au
compilateur *et* au système.

Le fichier stdarg.h correct pour votre gcc est
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdarg.h

Si ce fichier n'existe pas, c'est que gcc (et donc sans doute XCode et
tout le package developper) est mal installé.



il existe ce fichier, installé par un installer Apple.

bon, ben ce path "/usr/lib/gcc/i686-apple-darwin10/4.2.1/" est bien dans
le path du gcc (librairies) que j'utilise, je ne pige pas pourquoi gcc
ne l'a pas trouvé alors.



Mais, ça, c'est pour les libraries (les bibliothèques).

Là ce qui nous intéresse, ce sont les chemins utilisés par le
préprocesseur (le truc qui traite les directives #...). Je viens de
retrouver la commande pour les obtenir :

% echo "" | gcc -c -E -v -

La liste des chemins utilisés suit la ligne :

#include
bon après nouvelle compil, plus de seg fault et ça roule...



C'est un progrès ! ;-)

--
Paul Gaborit -
Publicité
Poster une réponse
Anonyme