编译报错 CMake Error: The following variables are used in this project, but they are set to NOTFOUND.

本文主要是介绍编译报错 CMake Error: The following variables are used in this project, but they are set to NOTFOUND.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Problem

用一块新的Nvidia的 Jetson NX板编译时遇到一个报错,如下:
error

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_cublas_device_LIBRARY (ADVANCED)linked by target "fast_vgicp_cuda" in directory /home/xi/run_ws/src/localization/fast_gicp

意思大概就是当前的CMake没有这个变量可以编译,其实就是CMake的版本不对。 Check之后当前的版本是3.10.2,然后我查了一下另一块NX的板,这块板正常跑没问题,也能cakin_make成功,用的是CMake 3.21.0
所以只要换个cmake的版本就可以解决这个问题。具体操作如下。

2. Solution

1)先确认一下当前的版本:cmake --version
2) 卸载cmake: 建议不卸载,特别是安装了ROS的,如果卸载直接用指令sudo apt remove cmake会把ROS的一些文件也一并删了,这就很恶心了,ROS会打不开,而且可能还会影响重装,有时按照ros wiki重装后也打不开。所以建议不要卸载,直接备份一下,重新安装就好
3)备份当前cmake,这也是为了给之后如果安装失败,留条后路

which cmake
# /usr/bin/cmake
cd /usr/bin
sudo mv cmake cmake_bak

4)到官网去下载CMake
官网:https://cmake.org/files/v3.21/
选择对应的版本,我选的是
cmake version
5) 安装

tar xf  cmake-3.21.0.tar.gz
cd cmake-3.21.0
sudo apt-get install build-essential 

等上面这一步安装完后,给cmake-3.21.0权限

cd ..
sudo chmod -R 777 cmake-3.21.0
cd cmake-3.21.0
./bootstrap

继续等待。。。

./configure
make
sudo make install

到这如果都没问题的话应该就成功了,再次查看当前cmake版本:cmake --version
如果显示的是3.21.0版本就说明成功了

也可以把执行文件放到/usr/bin下,我没放,好像也没问题,依然可以编译我的文件,只是which cmake显示的路径是在/usr/local/bin/cmake

把执行文件放到/usr/bin下的操作是:

 sudo cp ~/cmake-3.21.0/bin/cmake /usr/bin/

上面这个路径跟你把cmake文件解压到哪有关

Reference

  1. cmake版本升级(ubuntu1804):
    https://blog.csdn.net/qq_37425813/article/details/120436670

这篇关于编译报错 CMake Error: The following variables are used in this project, but they are set to NOTFOUND.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504104

相关文章

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法

《Java报错:org.springframework.beans.factory.BeanCreationException的五种解决方法》本文解析Spring框架中BeanCreationExce... 目录引言一、问题描述1.1 报错示例假设我们有一个简单的Java类,代表一个用户信息的实体类:然后,

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方