找不到路径中的CMake编译器

时间:2018-10-26 22:28:29

标签: cmake compilation

我正在尝试使用cmake编译程序,该程序会给我以下错误:

  

/.../ 3dg.cmake:8的CMake错误:(enable_language):
    CMAKE_CXX_COMPILER:

     

CC

     

不是完整路径,并且在PATH中找不到。

     

通过设置环境告诉CMake在哪里找到编译器     完整路径的变量“ CXX”或CMake缓存条目CMAKE_CXX_COMPILER     到编译器,或者到PATH中的编译器名称。
  呼叫堆栈(最新呼叫优先):
    CMakeLists.txt:8(包括)

     

在/.../3dg.cmake:8处的CMake错误:(enable_language):     CMAKE_C_COMPILER:

     

cc

     

不是完整路径,并且在PATH中找不到。

     

通过设置环境告诉CMake在哪里找到编译器     变量“ CC”或CMake缓存条目CMAKE_C_COMPILER到以下位置的完整路径     编译器,如果在PATH中,则为编译器名称。

我正在使用以下命令在我的cmake文件中设置这两个变量:

set(CMAKE_C_COMPILER cc)
set(CMAKE_CXX_COMPILER CC)

此外,我可以确认他们两个都在我的路上并且在正确的位置。

>>which cc
/opt/cray/pe/craype/2.5.14/bin/cc
>>which CC
/opt/cray/pe/craype/2.5.14/bin/CC

我的路径包括这个目录!

>>echo $PATH
/opt/cray/rca/2.2.18-6.0.7.0_33.3__g2aa4f39.ari/bin:/opt/cray/alps/6.6.43-6.0.7.0_26.4__ga796da3.ari/sbin:/opt/cray/job/2.2.3-6.0.7.0_44.1__g6c4e934.ari/bin:/opt/cray/pe/hdf5/1.10.0.3/bin:/opt/cray/pe/craype/2.5.14/bin:/opt/intel/compilers_and_libraries_2018.1.163/linux/bin/intel64:/usr/common/software/metis/5.1.0/bin:/usr/common/software/darshan/3.1.4/bin:/usr/common/software/altd/2.0/bin:/usr/common/software/bin:/usr/common/mss/bin:/usr/common/nsg/bin:/opt/cray/pe/mpt/7.7.0/gni/bin:/opt/ovis/bin:/opt/ovis/sbin:/usr/syscom/nsg/sbin:/usr/syscom/nsg/bin:/opt/cray/pe/modules/3.2.10.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/lib/mit/bin:/usr/lib/mit/sbin:/opt/cray/pe/bin:

cmake文件的路径与终端相同。我已经确认,如果我将cmake代码更改为:

set(CMAKE_C_COMPILER /opt/cray/pe/craype/2.5.14/bin/cc)
set(CMAKE_CXX_COMPILER /opt/cray/pe/craype/2.5.14/bin/CC)

但这不是一个长期解决方案,因为cc / CC的实际位置取决于我正在使用的模块以及编译器的更新版本。

有人知道这是怎么回事,以及如何强制cmake识别这些编译器位于正确的位置吗?谢谢。

1 个答案:

答案 0 :(得分:0)

转到glfw的download页并下载其source package。现在将其解压缩并进入目录。

现在使用sudo cmake -G "Unix Makefiles"生成make文件。 现在执行sudo makesudo cmake。安装过程应完成。 有关更多信息,请查看here