Je reçois cette erreur:
OpenCV-2.4.3 / Modules / Caractéristiques2D / SRC / FREAK.CPP: 437: ERREUR: Impossible de Trouvez un registre pour déverser dans la classe 'General_regs' P> BlockQuote>
Après avoir fait: p>
xxx pré> La même procédure fonctionne sur une autre machine. Des idées? P> p>
4 Réponses :
J'ai lutté avec cela pendant plusieurs heures également sur mes centos 5.x Boxen, et voici ma solution.
Il est évident que vous devez mettre à jour «GCC» mais à la mise à niveau de manière native via RPM ou simplement saisir des tours de vitesse au hasard, causant des problèmes de configuration de configuration sérieux sur votre serveur. Je n'ai pas le temps de compiler GCC / G ++ via Source en ce moment. Après avoir pâté du repo pendant un moment, j'ai constaté qu'il y avait, en effet, une libération 4.x de GCC dans la base repo. P>
Faites ceci (ou une personne avec "racine" pour le faire Cas d'OP qui n'a pas accès): p>
# cd /path/to/OpenCV-2.4.3 # mkdir release && cd release # env CC=/usr/bin/gcc44 CXX=/usr/bin/g++44 cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/place/to/install/ -D BUILD_PYTHON_SUPPORT=ON /path/to/OpenCV-2.4.3/
Je résolvai-je aussi le problème aussi. Si vous supprimez l'option d'optimisation pour la compilation de Freak.cpp, cela fonctionne. Vous devez creuser dans le maquillage pour enlever -o pour freak.cpp. Je vais une réponse plus complète quand j'ai du temps.
Vous devez creuser dans les maquillages pour retirer -o pour freak.cpp.
mise à jour: C'est exactement comment on devrait le faire (testé avec 2.4.3 et 2.4.4). P>
Vous devez modifier P>
.... YOUR_COMPILER $(CXX_DEFINES) $(CXX_FLAGS) -O0 ...
Merci! Je dois ajouter que la mine n'a pas -O3 code> ou tout
-o code> et c'est
-o code> qui signifie le fichier objet que je suppose. Donc, le résultat est comme ce
... $ (cxx_flags) -O0 -O .... code> et continue de construire.
avait le même problème et résolu comme wisehippy avec un léger changement:
J'ai trouvé le problème à résoudre une fois que j'ai mis à jour mon comme la racine vérifie que les fichiers sont les mêmes avant de faire cette étape, il peut ne pas être nécessaire pour vous. p> Il ne devrait y avoir rien de retour si le Les fichiers sont les mêmes. Si tel est le cas, continuez.
Sauvegardez votre ancien fichier. Vous pouvez supprimer également le fichier car il est identique à Créer un lien de sorte que fait. P> p> C ++ code> pour point sur
g ++ 44 code>, au lieu du
g ++ code> qui était 4.1.
g ++ code>, mais j'aime faire attention. P>
C ++ code> Points à votre
g ++ 44 code>. Vous pouvez également utiliser un lien symbolique ici aussi. P>
C'est peut-être un bug de votre GCC: gcc.gnu.org/bugzilla/show_bug .CGI? ID = 35135
Je reçois la même erreur.
Je n'ai pas accès à la modification de la GCC sur cette machine. Est-il possible d'en quelque sorte dire CMAKE de le compiler différemment?
Ou en quelque sorte désactiver la compilation de ce fichier dans le maquillage sans réduire les fonctionnalités de la bibliothèque OpenCV.