博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cmake的一个编译报错
阅读量:4323 次
发布时间:2019-06-06

本文共 1694 字,大约阅读时间需要 5 分钟。

在一台新搭建的服务器上执行cmake的时候,报了如下错误:

$ cmake ./-- The C compiler identification is unknown-- The CXX compiler identification is GNU 4.4.7-- Check for working C compiler: /usr/bin/cc-- Check for working C compiler: /usr/bin/cc -- brokenCMake Error at /usr/share/cmake/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:...

查看下gcc与g++的版本:

$ gcc --versiongcc (GCC) 5.1.0Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.$ g++ --versiong++ (GCC) 5.1.0Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

发现都是5.1.0,那为何会有这行“The CXX compiler identification is GNU 4.4.7”报错呢?

查看当前目录下的CMakeCache.txt

发现如下两行配置:

//CXX compiler.CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++//C compiler.CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc

执行 /usr/bin/c++ --version 和 /usr/bin/cc --version,发现输出的版本号仍然是5.1.0,这就有点莫名其妙了。

google搜索出了一个github issue:https://github.com/Kingsford-Group/genesum/issues/2,在里面找到了解决方案:

cmake -DCMAKE_CXX_COMPILER=$(which g++) -DCMAKE_C_COMPILER=$(which gcc) ./

执行之后果然可以了,并且重新打开了CMakeCache.txt之后发现,编译器的两个选项改变了:

//CXX compiler.CMAKE_CXX_COMPILER:FILEPATH=/usr/local/bin/g++//C compiler.CMAKE_C_COMPILER:FILEPATH=/usr/local/bin/gcc

这两个路径与命令 which gcc 和 which g++的输出一致。

猜测手动改CMakeCache.txt 的这两项应该也可以解决问题,比较困惑的就是,为何运行/usr/bin/c++ --version得到的版本号仍然是5.1.0?

这个疑惑要留待以后来解决了。

转载于:https://www.cnblogs.com/minglee/p/9016306.html

你可能感兴趣的文章
C++计算毫秒
查看>>
Spring IOC(转载)
查看>>
Java实现归并排序
查看>>
JQuery 前台传值到后台并调用后台方法
查看>>
Appium+Python3+ Android入门
查看>>
linux $ 类型变量 及Makefile 中 $ 类型变量的含义
查看>>
MyBatis插件及示例----打印每条SQL语句及其执行时间
查看>>
2.2
查看>>
[JS]事件捕获和冒泡
查看>>
【译】SQL Server误区30日谈-Day10-数据库镜像在故障发生后,马上就能发现
查看>>
linq之where子句
查看>>
Socket之UDP发送文件
查看>>
多语言在线代码编辑器,可运行程序
查看>>
C#:使用UPnP来穿透NAT使内网接口对外网可见
查看>>
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
查看>>
项目管理的小故事
查看>>
Visual Studio不显示智能提示代码,快捷键Alt+→也不出现
查看>>
多文件调用(函数、结构体)
查看>>
C# 获取本地电脑所有的盘符
查看>>
D3.js学习(三)
查看>>