Так что я попытался установить лязг + CMake составить простую программу на C++, и я получаю следующее сообщение об ошибке:CMake «лязг ++ не может составить простую тестовую программу» (Fedora 20)
-- 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
Пришло даже не компилируя мою программу, потому что она не может скомпилировать тестовую программу.
Похоже, важная линия здесь:
/usr/bin/ld: cannot find -lstdc++
Однако, я проверил, что libstdc++
установлен и до настоящего времени, поэтому на данный момент я совершенно потерял.
Другие вещи, которые я пробовал:
- Использование прекомпилированное двоичных файлов вместо
sudo yum install clang
- удалить и заново установить
- Пробовал
clang++ hello.cpp
(привет мир программа). Он говорит, что<iostreams>
не найден. Является ли clang отсутствующей стандартной библиотекой? EDIT: переход на<iostream>
дает мне такую же ошибку компоновщика выше.
Я не знаком с сценой clang, cmake и C++ в целом, поэтому я был бы признателен за любые указатели. Благодаря!
Нет ''. Используйте ''. –
HolyBlackCat
@ nos, я попробовал оба (дистрибутив и готовый двоичный файл), но ни один из них не работал. –
@HolyBlackCat, круто, теперь я получаю '/ usr/bin/ld: не могу найти -lstdC++', который похож на ошибку компоновщика, когда я пытаюсь запустить cmake. Я пробовал 'clang ++ hello.cpp', какие другие флаги использовать? –