26

I'm trying to compile a Git project, and I'm facing some problems with CMake. Initially, it didn't find the C++ compiler and prompted an error:

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.

So, I did:

CXX="gcc" cmake ..

But another error was prompted:

-- 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.

How can I solve this error and compile the project?

2
  • Are you trying to use CMake on a Linux or Mac OS system? CMake should be able to detect the default compiler on your machine automatically. What does g++ -v command returns in a terminal? Commented Jul 15, 2015 at 7:11
  • Linux system. About the g++ -v, it throws a "command not found". Commented Jul 15, 2015 at 17:20

2 Answers 2

57

You should try installing build-essential if you haven't done so.

Try this

sudo apt-get update
sudo apt-get install -y build-essential
Sign up to request clarification or add additional context in comments.

4 Comments

This resolved the issue for me. But why? What does the build-essential package do?
I ended up doing: sudo apt purge gcc-7 gcc-8 gcc-9 gcc-10 gcc c-compiler && sudo apt autoremove && sudo apt install gcc-9 g++-9 gcc g++ build-essential and that fixed my issue (which was No CMAKE_CXX_COMPILER could be found. Tell CMake where,compiler name if it is in the PATH.)
this works, but it's a bad answer because it doesn't explain why it works
build-essential worked for me also. Looks like build-essential is a package that contains a list of required Debian packages as dependencies, so when you install build-essential, you install all those packages in one single command.
25

You are trying to use C compiler gcc as C++ one, which is wrong.

You need to install g++ or other C++ compiler.

3 Comments

Really? I read this answer and, in my understanding, it says that the gcc can compile both C and C++ programs.
It can, but it requires at least stdc++ library, which comes with g++. Just install g++, and everything will work without intervention like setting CXX variable.
If you need it for Red Hat use yum install gcc-c++

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.