CMake "clang++ is not able compile a simple test program" (Fedora 20)
12,402
You need the development libraries and headers for C++ library, try
yum install libstdc++-devel
Author by
Jacob Wang
Updated on June 28, 2022Comments
-
Jacob Wang almost 2 years
So I tried to install clang + cmake to compile a simple C++ program and I'm getting the following error:
-- The C compiler identification is GNU 4.8.3 -- The CXX compiler identification is Clang 3.5.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/local/bin/clang++ -- Check for working CXX compiler: /usr/local/bin/clang++ -- broken CMake Error at /usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:54 (message): The C++ compiler "/usr/local/bin/clang++" is not able to compile a simple test program. It fails with the following output: Change Dir: /home/jtcwang/tmp/CMake/CMake/CMakeFiles/CMakeTmp Run Build Command:/usr/bin/gmake "cmTryCompileExec697180971/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec697180971.dir/build.make CMakeFiles/cmTryCompileExec697180971.dir/build gmake[1]: Entering directory `/home/jtcwang/tmp/CMake/CMake/CMakeFiles/CMakeTmp' /usr/bin/cmake -E cmake_progress_report /home/jtcwang/tmp/CMake/CMake/CMakeFiles/CMakeTmp/CMakeFiles 1 Building CXX object CMakeFiles/cmTryCompileExec697180971.dir/testCXXCompiler.cxx.o /usr/local/bin/clang++ -o CMakeFiles/cmTryCompileExec697180971.dir/testCXXCompiler.cxx.o -c /home/jtcwang/tmp/CMake/CMake/CMakeFiles/CMakeTmp/testCXXCompiler.cxx Linking CXX executable cmTryCompileExec697180971 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec697180971.dir/link.txt --verbose=1 /usr/local/bin/clang++ CMakeFiles/cmTryCompileExec697180971.dir/testCXXCompiler.cxx.o -o cmTryCompileExec697180971 -rdynamic /usr/bin/ld: cannot find -lstdc++ clang: error: linker command failed with exit code 1 (use -v to see invocation) gmake[1]: Leaving directory `/home/jtcwang/tmp/CMake/CMake/CMakeFiles/CMakeTmp' gmake[1]: *** [cmTryCompileExec697180971] Error 1 gmake: *** [cmTryCompileExec697180971/fast] Error 2
It's not even compiling my program because it fails to compile a test program.
Looks like the important line is here:
/usr/bin/ld: cannot find -lstdc++
However, I have checked that
libstdc++
is installed and up to date, so at this point I'm quite lost.Other things I've tried:
- Using prebuilt binaries instead of
sudo yum install clang
- remove and reinstall
- Tried
clang++ hello.cpp
(hello world program). It says<iostreams>
is not found. Is clang missing a standard library? EDIT: changing to<iostream>
gives me the same linker error above.
I'm not familiar with the clang, cmake and C++ scene in general, so I'd appreciate any pointers. Thanks!
- Using prebuilt binaries instead of