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:
- Mit vorkompilierten statt
sudo yum install clang
- entfernen und neu installieren
- 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 versuchtclang++ 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 aCMAKE_LINKER
zullvm-ld
und andereCMake
core vars Bezug auf Verknüpfung. Btw, was ist die version von CMake?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die Entwicklungs-Bibliotheken und Header-Dateien für C++ - Bibliothek, versuchen Sie
.so
- Dateien, ich brauche nur zu zeigen, um Sie richtig zu.Ihrem /home/gnu/bin/c++ zu erfordern scheinen, dass weitere Flagge zu verknüpfen, die Dinge richtig und CMake nicht wissen, dass.
Verwenden /usr/bin/c++ wie der compiler cmake mit -DCMAKE_CXX_COMPILER=/usr/bin/c++.
Auch, CMAKE_PREFIX_PATH variable Ziel-dir, wo Sie Ihre Projekt - ' Dateien installiert werden soll. Es hat nichts zu tun mit CMake installation Präfix und CMake selbst bereits wissen.
clang++
für compiler. Dies ist nicht korrekt.