CMake“ clang ++无法编译简单的测试程序”。 (Fedora 20) [英] CMake "clang++ is not able compile a simple test program" (Fedora 20)

查看:418
本文介绍了CMake“ clang ++无法编译简单的测试程序”。 (Fedora 20)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我尝试安装clang + cmake来编译一个简单的C ++程序,但出现以下错误:

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

但是,我已经检查了 libstdc ++ 是否已安装并且是最新的,所以在这一点上我很迷路。

However, I have checked that libstdc++ is installed and up to date, so at this point I'm quite lost.

我尝试过的其他方法:


  1. 使用预构建的二进制文件代替 sudo yum install clang

  2. 删除并重新安装

  3. 尝试了 clang ++ hello.cpp (hello world程序)。它说未找到< iostreams> 。 c缺少标准库吗?编辑:更改为< iostream> 给了我上面相同的链接器错误。

  1. Using prebuilt binaries instead of sudo yum install clang
  2. remove and reinstall
  3. Tried clang++ hello.cpp (hello world program). It says <iostreams> is not found. Is clang missing a standard library? changing to <iostream> gives me the same linker error above.

我一般不熟悉clang,cmake和C ++场景,因此不胜感激任何指针。谢谢!

I'm not familiar with the clang, cmake and C++ scene in general, so I'd appreciate any pointers. Thanks!

推荐答案

您需要C ++库的开发库和头文件,请尝试

You need the development libraries and headers for C++ library, try

yum install libstdc++-devel

这篇关于CMake“ clang ++无法编译简单的测试程序”。 (Fedora 20)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆