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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.