2015-07-15 17 views
5

Ich versuche, ein Git-Projekt zu kompilieren, und ich habe einige Probleme mit CMake. Am Anfang ist es nicht den C++ Compiler und aufgefordert, einen Fehler gefunden:Fehler beim Kompilieren mit CMake

cmake .. 

No CMAKE_CXX_COMPILER could be found.

Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH.

Also, ich tat:

CXX="gcc" cmake .. 

Aber ein anderer Fehler ausgelöst wurde:

-- The CXX compiler identification is unknown
-- Check for working CXX compiler: /usr/bin/gcc
-- Check for working CXX compiler: /usr/bin/gcc -- broken
CMake Error at /usr/share/cmake-3.0/Modules/CMakeTestCXXCompiler.cmake:54 (message):
The C++ compiler "/usr/bin/gcc" is not able to compile a simple test program.

Wie kann ich diesen Fehler beheben und das Projekt kompilieren?

+0

Versuchen Sie CMake auf einem Linux oder Mac OS-System zu benutzen? CMake sollte in der Lage sein, automatisch den Standard-Compiler auf Ihrem Computer zu erkennen. Was gibt der Befehl "g ++ -v" in einem Terminal zurück? – Antwane

+0

Linux-System. Über das 'g ++ -v' wird ein" Befehl nicht gefunden "geworfen. – Patrick

Antwort

6

Sie versuchen C Compiler gcc als C++ ein, zu verwenden, die falsch ist.

Sie müssen g++ oder andere C++ Compiler installieren.

+0

Wirklich? Ich lese [diese Antwort] (http://stackoverflow.com/a/173007/3029543) und nach meinem Verständnis sagt es, dass der gcc sowohl C- als auch C++ - Programme kompilieren kann. – Patrick

+2

Es kann, aber es erfordert mindestens stdC++ Bibliothek, die mit g ++ kommt. Installieren Sie einfach g ++, und alles funktioniert ohne Eingreifen wie das Setzen der CXX-Variable. – Tsyvarev

+0

Danke, es hat einwandfrei funktioniert. – Patrick

11

Sie sollten versuchen, build-essential zu installieren, wenn Sie dies nicht getan haben.

Try this

sudo apt-get update 
sudo apt-get install -y build-essential 
+0

Das hat das Problem für mich gelöst. Aber warum? Was macht das 'build-essential' Paket? –

+0

https://superuser.com/a/151558/170267 – iamchriswick