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
GitHub 加速计划 / ar / Aria
5.52 K
861
下载
下载可以很简单
最近提交(Master分支:3 个月前 )
b0d3c6dd - 5 个月前
8fd9634d - 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐