我正在使用Cmake 3.5.1,并且需要编译一些需要Cmake 3.7的C ++代码。我正在使用Ubuntu 16.04。
我无法卸载Cmake 3.5.1,因为它与ROS捆绑在一起,这样做会破坏ROS。因此,我使用here中的说明安装了CMake 3.12.3,但将其安装在另一个目录(/usr/local/cmake-3.12.3)中。
在终端中运行命令以检查版本:
cmake版本3.12.3
gcc版本5.4.0
g ++(Ubuntu 5.4.0-6ubuntu1〜16.04.10)5.4.0
接下来,我尝试编译C ++代码
cd /media/fastrl-master
sudo cmake .
我收到一个错误,表明CMake无法编译简单的测试程序。我尝试设置包含C ++代码的文件夹(fastrl-master)的权限,并尝试安装构建必需项(apt install --reinstall build-essential)。这些没有用。
这是CMakeError.log的内容
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:-c
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:--c ++
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:--ec ++
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:-c
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:--c ++
输出为:权限被拒绝
编译CXX编译器标识源文件 “ CMakeCXXCompilerId.cpp”失败。编译器:/usr/local/src/cmake-3.12.3 构建标志:ID标志:--ec ++
输出为:权限被拒绝
使用“”检查CXX编译器是否为IAR与“ IAR”不匹配 。+ Compiler“:使用”“检查CXX编译器是否为IAR 与“ IAR。+编译器”不匹配:确定CXX编译器是否工作 失败,并显示以下输出:更改目录: / media / fastrl-master / CMakeFiles / CMakeTmp
运行构建命令:“ / usr / bin / make”“ cmTC_662e1 / fast” / usr / bin / make -f CMakeFiles / cmTC_662e1.dir / build.make CMakeFiles / cmTC_662e1.dir / build make 1:进入目录'/ media / fastrl-master / CMakeFiles / CMakeTmp' 构建CXX对象CMakeFiles / cmTC_662e1.dir / testCXXCompiler.cxx.o /usr/local/src/cmake-3.12.3 -o CMakeFiles / cmTC_662e1.dir / testCXXCompiler.cxx.o -c /media/fastrl-master/CMakeFiles/CMakeTmp/testCXXCompiler.cxx make 1: execvp:/usr/local/src/cmake-3.12.3:权限被拒绝 CMakeFiles / cmTC_662e1.dir / build.make:65:目标配方 “ CMakeFiles / cmTC_662e1.dir / testCXXCompiler.cxx.o”制作失败1: * [CMakeFiles / cmTC_662e1.dir / testCXXCompiler.cxx.o]错误127 make 1: 离开目录'/ media / fastrl-master / CMakeFiles / CMakeTmp' Makefile:121:目标'cmTC_662e1 / fast'的配方失败:* [cmTC_662e1 / fast]错误2