30 votes

"Les constructions in-source ne sont pas autorisées" dans cmake

Je suis nouveau à cmake, et je l'utilise seulement pour installer opencv sur mon ubuntu linux. Voici la commande que j'ai lancée :

"cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source"

Ensuite, il renvoie l'erreur :

"FATAL: In-source builds are not allowed.
You should create separate directory for build files."

Mon répertoire actuel, /home/jinha/OCV/build/opencv, contient bien le fichier CMakefiles.txt, donc ce n'est pas le problème. J'ai essayé de changer le répertoire dans ma commande, mais ils soulèvent tous la même erreur. J'ai vu les autres réponses sur ce problème, donc j'ai effacé le dossier CMakeFiles et le fichier CMakeCache.txt à chaque fois avant de lancer la commande, mais aucune d'entre elles n'a fonctionné. Merci.

81voto

John Zwinck Points 43636

Il vous demande de créer un répertoire de construction séparé (n'importe où), et d'y exécuter cmake. Par exemple :

mkdir my_build_dir
cd my_build_dir
rm ../CMakeCache.txt
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/jinha/OCV/source

Notez le .. dans cet exemple, indiquant à cmake où chercher les sources.

Au cas où vous n'auriez pas enlevé CMakeCache.txt avant de reconstruire, il y aura toujours cette erreur. Alors, n'oubliez pas de supprimer CMakeCache.txt avant d'exécuter cmake .

4voto

Orlov Const Points 61

Après avoir téléchargé et dézippé avec succès les sources d'OpenCV à partir de sources vous devez créer un simple fichier de commande install.sh. Par exemple, votre répertoire de travail sera /home/user/myopencv

Donc /home/user/myopencv/install.sh contiendra le code suivant :

#!/bin/bash

rm CMakeCache.txt
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local 
make
make install
make clean

Suivant

chmod 777 install.sh
./install.sh

Et après tout cela, vous obtiendrez ces fichiers exécutables :

root@cartman:/usr/local/bin# ls -las | grep opencv
 32 -rwxr-xr-x  1 root root   29888 апр 20 18:10 opencv_annotation
244 -rwxr-xr-x  1 root root  247608 апр 20 18:10 opencv_createsamples
244 -rwxr-xr-x  1 root root  247504 апр 20 18:10 opencv_haartraining
 20 -rwxr-xr-x  1 root root   18600 апр 20 18:10 opencv_performance
288 -rwxr-xr-x  1 root root  294592 апр 20 18:10 opencv_traincascade
 16 -rwxr-xr-x  1 root root   14288 апр 20 18:10 opencv_version
 60 -rwxr-xr-x  1 root root   61040 апр 20 18:10 opencv_visualisation

Profitez-en !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X