6

Using ubuntu 22.04, g++ can compile my test program with no issues. clang++ on the other hand will fail with...

main.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
         ^~~~~~~~~~
1 error generated.
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
  cout << "hello world" << endl;
  return 0;
}

I also have a cmake/c++ project that will compile just fine with gcc, but when I reconfigure it to use clang I get the following output from cmake.

~/C/vkf % cmc && cmake ./ -DCMAKE_BUILD_TYPE=Release -G "Ninja" && ninja
-- The C compiler identification is Clang 14.0.0
-- The CXX compiler identification is Clang 14.0.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ - broken
CMake Error at /usr/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake:62 (message):
  The C++ compiler
&quot;/usr/bin/clang++&quot;

is not able to compile a simple test program.

It fails with the following output:

Change Dir: /home/david/C/vkf/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/ninja cmTC_ef4ce &amp;&amp; [1/2] Building CXX object CMakeFiles/cmTC_ef4ce.dir/testCXXCompiler.cxx.o
[2/2] Linking CXX executable cmTC_ef4ce
FAILED: cmTC_ef4ce 
: &amp;&amp; /usr/bin/clang++   CMakeFiles/cmTC_ef4ce.dir/testCXXCompiler.cxx.o -o cmTC_ef4ce   &amp;&amp; :
/usr/bin/ld: cannot find -lstdc++: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.





CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:11 (project)

-- Configuring incomplete, errors occurred! See also "/home/david/C/vkf/CMakeFiles/CMakeOutput.log". See also "/home/david/C/vkf/CMakeFiles/CMakeError.log".

in my CMakeError.log

/usr/bin/ld: cannot find -lstdc++: No such file or directory

Something must have been changed in my system configuration, because both of these worked fine before. Does anyone know how to fix it?

David Carpenter
  • 161
  • 1
  • 3

3 Answers3

4

Try removing cpp-12 package or install libstdc++-12-dev.

vchig
  • 41
1

I fixed it a very similar issue I had by installing libc++abi-dev:

sudo apt install libc++abi-dev
0

I solved it on Ubuntu 24.04 by installing libc++-dev:

sudo apt-get install libc++-dev