web-dev-qa-db-fra.com

"Le compilateur C++"/usr/bin/c ++ "n'est pas en mesure de compiler un programme de test simple." En essayant d'installer OpenCV

J'essaie d'installer OpenCV sur mon Mac en suivant ceci link

Cependant, lorsque je tape cmake -G "Unix Makefiles" .. sur mon terminal, cette erreur est imprimée.

- L'identification du compilateur CXX est inconnue - L'identification du compilateur C est inconnue - Vérifier le bon fonctionnement du compilateur CXX: /usr/bin/c++ - Vérifier le bon fonctionnement Compilateur CXX:/usr/bin/c ++ - Erreur CMake cassée à /opt/local/share/cmake-3.0/Modules/CMakeTestCXXCompiler.cmake:54 (Message): Le compilateur C++ "/ usr/bin/c ++ "n'est pas en mesure de compiler un programme de test simple .

Il échoue avec la sortie suivante:

Changer le répertoire:/Users/kwmaeng/Desktop/opencv/build/CMakeFiles/CMakeTmp

Exécuter la commande de construction: "/ usr/bin/make" "cmTryCompileExec653545098/fast"

make: error: impossible de trouver l'utilitaire "make", pas un outil de développement ou dans PATH

CMake ne pourra pas générer correctement ce projet. Appelez Stack (l'appel le plus récent en premier): CMakeLists.txt: 56 (projet)

- Configuration incomplète, des erreurs sont survenues! Voir aussi "/Users/kwmaeng/Desktop/opencv/build/CMakeFiles/CMakeOutput.log". Voir aussi "/Users/kwmaeng/Desktop/opencv/build/CMakeFiles/CMakeError.log".

Alors j'ai vérifié CMakeError.log, et c'est le contenu

La compilation du fichier source d'identification du compilateur CXX "CMakeCXXCompilerId.cpp" a échoué. Compilateur:/usr/bin/c ++ Drapeaux de construction: Drapeaux d’identification: 

La sortie était: 72 xcodebuild: error: SDK "/ Volumes/MAC/dev/adt-bundle-mac-x86_64-20131030/sdk" ne peut pas être situé à . c ++: erreur: impossible de trouver l'utilitaire "clang ++", ni un outil de développeur ni dans PATH ... (blah blah)

Ce qui est étrange, c'est que /Volumes/MAC/dev/adt-bundle-mac-x86_64-20131030/sdk est l'endroit où mon SDK Android a été installé. Il est maintenant supprimé. Il n'y a donc plus de dossier de ce type. L'erreur se produit-elle parce que cmake fait référence à un chemin invalide qui n'existe plus ?? Pourquoi cmake fait-il référence à l'emplacement d'Android sdk ?? Est-ce même important d'ouvrir?

J'ai cherché sur Google pendant des heures, mais peu d'aide a été trouvée. S'il vous plaît aidez-moi si vous avez des idées.

Merci d'avance.

8
kwmaeng

Grâce à l'aide de tous, j'ai pu résoudre mon problème.

Voici ce que j'ai fait pour d'autres personnes susceptibles de souffrir du même problème à l'avenir:

c'était parce que mon $PATH était foiré (je pense que c'est arrivé lorsque j'ai essayé d'ajouter Android SDK à $PATH)

J'ai effacé le .bash_profile et ajouté C++ ainsi que make et /opt/local/bin, /opt/local/sbin

comme ça

export PATH=$PATH:/opt/local/bin:/opt/local/sbin:/usr/bin/c++:/usr/bin/make

et cela a fonctionné comme un charme.

2
kwmaeng

J'ai eu le même problème - ce qui a bien fonctionné a été de supprimer les outils de ligne de commande:

rm -rf /Library/Developer/CommandLineTools

Puis réinstallez l'outil de ligne de commande:

xcode-select --install

Qui sait ce que fait ce script ... et je n'ai pas le temps d'enquêter alors voilà ...

2
cayossarian

J'ai trouvé une autre solution: placer set(CMAKE_C_COMPILER gcc) tout en haut de mon CMakeLists.txt. Pour référence, j'ai eu cette erreur juste après l'installation d'une mise à jour CLion.

Voici mon CMakeLists.txt final:

set(CMAKE_C_COMPILER gcc)
cmake_minimum_required(VERSION 3.6)
project(...)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES XXX.cpp)
add_executable(... ${SOURCE_FILES})
0
noɥʇʎԀʎzɐɹƆ

J'ai également rencontré ce problème, je l'ai résolu en définissant les correctes CXXFLAGS et CPPFLAGS. Je pense que vous devriez aussi vérifier.

Une solution simple serait:

CPPFLAGS := $(CPPFLAGS) $(CFLAGS) CXXFLAGS := $(CXXFLAGS) $(CFLAGS)

0
zilongshanren

Pour moi, mon premier problème était que je n'avais pas les outils de ligne de commande Xcode. Alors je les ai eu (xcode-select --install dans le terminal), et j'ai toujours le problème. La solution? Fermez la fenêtre du terminal et créez-en une nouvelle. Alors voila!

0
ALamp