J'ai un fichier de construction sur osx lion mais lorsque j'essaie d'exécuter ce fichier, je reçois l'erreur suivante p> J'ai essayé d'utiliser l'indicateur exécutant la commande J'ai également essayé d'ajouter le commutateur La sortie de la commande La ligne est la suivante: p> -arch x86_64 code> mais obtenir toujours la même erreur. P>
arch code> donne:
i386 code>. p>
uname -a code> me dit:
Darwin Kernel Version 11.3.0: Jan 12 18:47:41 PST 2012; root: xnu-1699.24.23 ~ 1 / version_x86_64 x86_64 code> p>
-march = x86-64 code> comme décrit dans cette réponse fichier était Construit pour i386 qui n'est pas l'architecture étant liée (x86_64) tout en compilant OPENCV2.2 pour iOS 4.2 sur Mac OSX 10.6 mais cela n'a pas fonctionné pour moi. P>
3 Réponses :
réviser le maquillage plus comme: p>
make SFLAG2=-m32
Merci, mais je reçois toujours exactement la même erreur: "Le fichier a été conçu pour un format de fichier non pris en charge qui n'est pas lié à l'architecture (x86_64)". Le makefile est maintenant exactement le même que votre premier exemple
C'est surprenant. Pouvez-vous montrer les lignes de commande exécutées? Il devrait y avoir deux, bien sûr: une produisant le fichier code> et une tentative de production de l'exécutable. Que se passe-t-il si vous essayez:
gcc -o bonjour hello.c code>, produisant le fichier d'objet directement à partir du code source? Que se passe-t-il si vous déposez la ligne VPATH ou commentez-le? Où est le fichier
hello.c code>? Qu'en est-il de
hello.h code>?
J'ai mis à jour la question avec la sortie de commande afin que je puisse le formater
Je vois la mise à jour. Étant donné que -m64 code> ne fonctionne pas, que se passe-t-il lorsque vous essayez
-m32 code> à la place? Cela échoue-t-il aussi?
Lorsque j'utilise -M32, j'ai obtenu: le fichier a été conçu pour un format de fichier non pris en charge qui n'est pas lié à l'architecture (i386)
HOLD ON: la première ligne de commande - gcc -i include -std = gnu99 -m64 -c include / hello.h -o hello.o code>. Il ne compile pas
hello.c code> du tout. Jetez un coup d'œil à ce que
$ ^ code> est censé être; Vous devez probablement utiliser quelque chose comme
$ * code> ou
$ << / code> ou quelque chose pour spécifier le fichier C. Lorsque vous exécutez
fichier hello.o code>, qu'est-ce que cela vous dit? Le fichier est vide? Vous devrez peut-être répertorier
hello.c code> avant
hello.h code> dans les dépendances de
hello.o code>.
Phew! Le chapitre 10 du manuel de GNU couvre les macros telles que $ << / code> et
$ ^ code>.
Merci je vais aller et télécharger ça
Dans mon cas, l'option -M créait ce problème. J'ai ajouté cette option aux dépendances du projet, mais c'est en quelque sorte causé des problèmes. P>
Votre échantillon / extrait ne pas liste -m code>.
J'ai eu ce problème lorsque j'ai accidentellement inclus un fichier .h dans une archive ... p>