CMake "clang++ ist nicht in der Lage, stellen Sie eine einfache test-Programm" (Fedora 20)

Also habe ich versucht zu installieren clang + cmake zum kompilieren eines einfachen C++ - Programm, und ich bin immer die folgende Fehlermeldung:

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

Es ist nicht einmal kompilieren meines Programms, weil es nicht um compile-test-Programm.

Sieht aus wie die wichtige Zeile ist hier:

 /usr/bin/ld: cannot find -lstdc++

Aber ich habe überprüft, dass libstdc++ ist installiert und up-to-date, so dass an diesem Punkt bin ich ganz verloren.

Andere Dinge, die ich versucht habe:

  1. Mit vorkompilierten statt sudo yum install clang
  2. entfernen und neu installieren
  3. Versucht clang++ hello.cpp (Hallo Welt Programm). Es sagt <iostreams> nicht gefunden. Ist das Geräusch fehlt eine standard-Bibliothek? EDIT: Wechsel zu <iostream> gibt mir die gleiche linker error oben.

Ich bin nicht vertraut mit den clang, cmake und C++ - Szene im Allgemeinen, so würde ich mich über jegliche Hinweise. Danke!

  • Es gibt keine <iostreams>. Verwenden <iostream>.
  • Ich versuchte beide (Distribution und vorgefertigte Binär -) aber keiner von Ihnen arbeitete.
  • cool, jetzt bekomme ich /usr/bin/ld: cannot find -lstdc++ das ist ähnlich wie die linker-Fehlermeldung, wenn ich versuche zu cmake. Ich habe versucht clang++ hello.cpp welche flags muss ich verwenden?
  • Ich habe keine Idee, sorry.
  • Die Tatsache, dass Sie können nicht manuell erstellen einer hello world-Programm bedeutet, dass Sie ' re Umgang mit einem compiler-Problem, und nicht ein CMake Problem. Wenn Ihr compiler nicht richtig eingestellt, dann CMake kann dir nicht helfen mit, dass.
  • Könnten Sie bitte zeigen Sie entsprechende Stück von CMakeLists.txt von Euch? Auch sollte Man den Punkt a CMAKE_LINKER zu llvm-ld und andere CMake core vars Bezug auf Verknüpfung. Btw, was ist die version von CMake?

InformationsquelleAutor Jacob Wang | 2014-10-15
Schreibe einen Kommentar