编译报错 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

相关文章

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

解决Java异常报错:java.nio.channels.UnresolvedAddressException问题

《解决Java异常报错:java.nio.channels.UnresolvedAddressException问题》:本文主要介绍解决Java异常报错:java.nio.channels.Unr... 目录异常含义可能出现的场景1. 错误的 IP 地址格式2. DNS 解析失败3. 未初始化的地址对象解决

Python报错ModuleNotFoundError的10种解决方案

《Python报错ModuleNotFoundError的10种解决方案》在Python开发中,ModuleNotFoundError是最常见的运行时错误之一,通常由模块路径配置错误、依赖缺失或命名冲... 目录一、常见错误场景与原因分析二、10种解决方案与代码示例1. 检查并安装缺失模块2. 动态添加模块

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

idea报错java: 非法字符: ‘\ufeff‘的解决步骤以及说明

《idea报错java:非法字符:‘ufeff‘的解决步骤以及说明》:本文主要介绍idea报错java:非法字符:ufeff的解决步骤以及说明,文章详细解释了为什么在Java中会出现uf... 目录BOM是什么?1. BOM的作用2. 为什么会出现 \ufeff 错误?3. 如何解决 \ufeff 问题?最

解决Maven项目报错:failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题

《解决Maven项目报错:failedtoexecutegoalorg.apache.maven.plugins:maven-compiler-plugin:3.13.0的问题》这篇文章主要介... 目录Maven项目报错:failed to execute goal org.apache.maven.pl

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL