对Ubuntu 14.04的CMake(2.8.12.2)编译器检查失败

时间:2014-11-25 00:33:45

标签: gcc cmake ubuntu-14.04

我正在尝试运行这个简单的CMake命令:

$ cmake -D CMAKE_C_COMPILER=/usr/bin/gcc -D CMAKE_CXX_COMPILER=/usr/bin/g++ ./src/

我得到以下输出:

  

- C编译器标识是GNU 4.8.2

     

- CXX编译器标识为GNU 4.8.2

     

- 检查工作的C编译器:/ usr / bin / gcc

     

- 检查工作的C编译器:/ usr / bin / gcc - 已损坏

     

/usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61中的CMake错误(消息):     C编译器“/ usr / bin / gcc”无法编译简单的测试程序。

出错的原因如下:

  

gcc:错误:无法识别的命令行选项'-rpath'

因为CMake尝试使用以下命令进行链接:

  

/ usr / bin / gcc -rpath / usr / local / openblas / lib     CMakeFiles / cmTryCompileExec1190183239.dir / testCCompiler.c.o -o     cmTryCompileExec1190183239 -rdynamic

据我所知,gcc没有独立的'-rpath'选项。我不确定为什么CMake会这样做。

有没有其他人遇到过这个?溶液

谢谢!

PS:可能有用的更多信息: 我正在尝试学习如何使用CMake,因此目录结构非常简单:

-cmake_test /
 -bin /
 -src /
   -executable.cpp
   -CMakeLists.txt
-CMakeLists.txt

修改

的完整输出
    $ cmake ./src/
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- broken
CMake Error at /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "/usr/bin/cc" is not able to compile a simple test program.

  It fails with the following output:

   Change Dir: /home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp



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

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

  make[1]: Entering directory
  `/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp'

  /usr/bin/cmake -E cmake_progress_report
  /home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp/CMakeFiles
  1

  Building C object
  CMakeFiles/cmTryCompileExec961681416.dir/testCCompiler.c.o

  /usr/bin/cc -o CMakeFiles/cmTryCompileExec961681416.dir/testCCompiler.c.o
  -c
  /home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp/testCCompiler.c


  Linking C executable cmTryCompileExec961681416

  /usr/bin/cmake -E cmake_link_script
  CMakeFiles/cmTryCompileExec961681416.dir/link.txt --verbose=1

  /usr/bin/cc -rpath /usr/local/openblas/lib
  CMakeFiles/cmTryCompileExec961681416.dir/testCCompiler.c.o -o
  cmTryCompileExec961681416 -rdynamic

  cc: error: unrecognized command line option ‘-rpath’

  make[1]: *** [cmTryCompileExec961681416] Error 1

  make[1]: Leaving directory
  `/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeTmp'

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





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



-- Configuring incomplete, errors occurred!
See also "/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeOutput.log".
See also "/home/gyorgy/Workspace/CPP_Tests/src/cmake_test/CMakeFiles/CMakeError.log".

1 个答案:

答案 0 :(得分:2)

我向所有人道歉......错误是由于我不久前犯了错误。

简而言之,我的.bashrc文件中有以下不正确的行:

export LDFLAGS="-rpath /usr/local/openblas/lib "$LDFLAGS

和CMake在CMakeCommonLanguageInclude.cmake模块中有以下行:

set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS_INIT} $ENV{LDFLAGS}"

这显然导致将CMAKE_EXE_LINKER_FLAGS设置为-rpath /usr/local/openblas/lib和。{ 因此错误。将.bashrc文件更改为:

export LDFLAGS="-Wl,-rpath=/usr/local/openblas/lib "$LDFLAGS

问题已经解决。

我不知道为什么没有提出GUI版本:-)

我可能通过阅读OSX论坛或其他东西弄乱了.bashrc文件。

无论如何,谢谢你的答案!