gcc-4.8无法编译测试程序?

时间:2017-10-21 00:02:31

标签: c++ linux c++11 gcc cmake

我在Ubuntu 16.04上安装了gcc-4.8来构建一个C ++ 11程序。我有一个CMakeList.txt文件在OS X上运行良好,其中Clang和GCC 4.8是从Macports构建的。

我首先设置CXX=/usr/bin/gcc-4.8,然后CMake因以下错误而失败:

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is unknown
-- 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
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/gcc-4.8
-- Check for working CXX compiler: /usr/bin/gcc-4.8 -- broken
CMake Error at /usr/share/cmake-3.5/Modules/CMakeTestCXXCompiler.cmake:54 (message):
  The C++ compiler "/usr/bin/gcc-4.8" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: /home/ruipacheco/databaseclient/cpp/ninja/CMakeFiles/CMakeTmp          

  Run Build Command:"/usr/bin/make" "cmTC_5df0c/fast"

  /usr/bin/make -f CMakeFiles/cmTC_5df0c.dir/build.make
  CMakeFiles/cmTC_5df0c.dir/build

  make[1]: Entering directory
  '/home/ruipacheco/databaseclient/cpp/ninja/CMakeFiles/CMakeTmp'

  Building CXX object CMakeFiles/cmTC_5df0c.dir/testCXXCompiler.cxx.o

  /usr/bin/gcc-4.8 -o CMakeFiles/cmTC_5df0c.dir/testCXXCompiler.cxx.o -c
  /home/ruipacheco/databaseclient/cpp/ninja/CMakeFiles/CMakeTmp/testCXXCompiler.cxx

  gcc-4.8: error trying to exec 'cc1plus': execvp: No such file or directory

  CMakeFiles/cmTC_5df0c.dir/build.make:65: recipe for target
  'CMakeFiles/cmTC_5df0c.dir/testCXXCompiler.cxx.o' failed

  make[1]: *** [CMakeFiles/cmTC_5df0c.dir/testCXXCompiler.cxx.o] Error 1

  make[1]: Leaving directory
  '/home/ruipacheco/databaseclient/cpp/ninja/CMakeFiles/CMakeTmp'

  Makefile:126: recipe for target 'cmTC_5df0c/fast' failed

  make: *** [cmTC_5df0c/fast] Error 2

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:6 (project)

-- Configuring incomplete, errors occurred!

同样,我知道gcc-4.8能够构建C ++ 11程序,并且我已经设法使这个CMakeLists.txt文件在OSX上与gcc 4.8一起使用,那么我可能会缺少什么?

1 个答案:

答案 0 :(得分:3)

“gcc-4.8”是C编译器,而不是C ++编译器。您应该将CXX变量设置为“g ++ - 4.8”或“g ++”或其他一些C ++编译器可执行文件。