Ubuntu安装CMake

2023-05-16

cmake所做的事其实就是告诉编译器如何去编译链接源代码。你也许想问不是有makefile吗,为什么还要它?这里就牵涉到跨平台问题。而且其语法也简单。

  1. 卸载已经安装的旧版的CMake[非必需]
apt-get autoremove cmake
  1. 文件下载解压:
wget https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.tar.gz
  1. 解压:
tar zxvf cmake-3.20.0-linux-x86_64.tar.gz
  1. 查看解压后目录:
tree -L 2 cmake-3.20.0-linux-x86_64
cmake-3.20.0-linux-x86_64
├── bin
│   ├── ccmake
│   ├── cmake
│   ├── cmake-gui
│   ├── cpack
│   └── ctest
├── doc
│   └── cmake
├── man
│   ├── man1
│   └── man7
└── share
    ├── aclocal
    ├── applications
    ├── bash-completion
    ├── cmake-3.20
    ├── emacs
    ├── icons
    ├── mime
    └── vim

15 directories, 5 files

bin下面有各种cmake家族的产品程序。

  1. 创建软链接

注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt

sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20.0
sudo ln -sf /opt/cmake-3.20.0/bin/* /usr/bin/
  1. 然后执行命令检查一下:
>>>cmake --version
cmake version 3.20.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).
>>>cmake-gui

OK。现在在Ubuntu 18.04上的cmake本安装成功。编写简单的cmake

  1. 使用cmake首先得有个CMakeList.txt文件,你需要把配置信息写在该文件中,然后通过cmake去处理该文件。将设有下面一个main.cpp文件
    //main.cpp文件
#include<iostream>
using namespace std;
int main(){
    cout<<"hello world!"<<endl;
    return 0;
}

这时候我们就可以写个如下的CMakeList.txt文件
#cmake最小需要版本

cmake_minimum_required(VERSION 2.8)

#项目名字

project(HELLOWORLD)

#包含原程序,即把给定目录下的源程序复制给变量DIR_SRC

aux_source_directory(DIR_SRC ./)

#生成程序

add_executable(helloworld ${DIR_SRC})

然后执行如下命令

$mkdir build
$cd build
$cmake ..
$make
$./helloworld

这样就编译好程序并运行。

添加静态库或者动态库

而假设我们程序用到了在/usr/lib下的一个静态库libmy.a,那就需要添加如下两个命令
#库所在位置

link_directories(/usr/lib)

#程序编译时候链接库

target_link_libraries(helloworld my)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu安装CMake 的相关文章

随机推荐

  • GPS定位算法(牛顿迭代+最小二乘

    第一步 xff1a 准备数据与设置初始解 对于所有各颗可见卫星n xff0c 收集到它们在同一时刻的伪距测量值 xff0c 计算测量值中的各项偏差 误差成分的矫正量 xff08 电离层延时 xff09 和 xff08 对流层延时 xff09
  • windows系统下安装TensorFlow(GPU版)

    说明 xff1a 只有NVIDIA显卡才支持用GPU跑TensorFlow 在https developer nvidia com cuda gpus查询GPU是否支持CUDA xff0c 一般要计算能力在3 0以上才适合 1 xff0c
  • SpringBoot + Redis实现布隆过滤器

    一 简述 关于布隆过滤器的详细介绍 xff0c 我在这里就不再赘述一遍了 我们首先知道 xff1a BloomFilter使用长度为m bit的字节数组 xff0c 使用k个hash函数 xff0c 增加一个元素 通过k次hash将元素映射
  • halcon学习笔记(12)——相机实践标定及二维码

    最近某宝上买了一个工业相机和镜头 xff0c 简单的做了一下实验 xff1b 1 xff09 相机是需要驱动的按照商家的操作安装好驱动 xff0c 这样电脑才能识别到 xff1b 2 xff09 打开halcon的 助手 Image Acq
  • docker搭建私有Git代码仓库

    一 在dockerhub镜像仓库搜索gogs gogs镜像 二 使用docker拉取gogs gogs镜像 docker pull gogs gogs latest 三 查看镜像 docker image ls 四 启动容器 docker
  • 毕业设计-基于深度学习的数据融合方法研究

    目录 前言 课题背景和意义 实现技术思路 一 深度学习概述 二 基于深度学习的数据融合方法分类 1 基于深度学习特征提取的数据融合方法 2 基于深度学习融合的数据融合方法 3 基于深度学习全过程的数据融合方法 实现效果图样例 最后 前言 x
  • ROS与OpenCV版本冲突问题

    在安装小觅相机的时候因为ROS与opencv版本不兼容的原因导致各种莫名其妙的错误 安装方式 按照相机技术手册 xff0c SDK在linux下共有三种安装方式 xff0c ppa安装 xff0c 源码编译安装 xff0c ROS安装 注意
  • ucos源码阅读3——信号量,互斥信号量(未完待续)

    ucos源码阅读3 信号量 xff0c 互斥信号量 事件控制块ECBInitEventList xff08 xff09 EventWaitListInit xff08 xff09 EventTaskRdy xff08 xff09 Event
  • Linux 自启动.sh脚本使用sudo自动输入密码

    1 root下 xff0c vi etc sudoers root 64 guanz etc vi etc sudoers root 64 guanz etc 添加如下内容 guanz ALL 61 ALL ALL 示例 Allow roo
  • Android系统和linux内核的关系详解

    Android系统和linux内核的关系详解 大家都知道Android是基于Linux内核的操作系统 xff0c 也曾经和Linux基金会因为内核问题产生过分歧 可以参考本文 后面的 参考阅读 这里主要对android和linux的关系进行
  • 详解词袋模型

    个人博客 xff1a http www chenjianqu com 原文链接 xff1a http www chenjianqu com show 101 html 本文是 lt 视觉SLAM14讲 gt 的学习笔记 xff0c 今天学习
  • 如何判断树莓派通过GPIO与5G模块成功连接?

    如果想要判断自己是否成功连接了树莓派与5G模块 xff0c 可以通过以下方式进行判断 xff1a 查看设备连接状态 xff1a 可以通过在树莓派终端中执行lsusb命令来查看USB设备的连接状态 xff0c 如果5G模块被识别到 xff0c
  • Windows桌面应用程序(1-3rd) 64位Windows编程指南

    微软已经发布了64位版本的Windows操作系统 64位Windows在设计时考虑了兼容性 开发人员可以确保其现有的32位应用程序在64位Windows下运行良好 xff0c 或通过迁移其应用程序来利用64位Windows的优势 64位Wi
  • gazebo打不开world的通用解决方法

    打开gazebo的时候会发现一直处于这种状态 xff0c 这是因为model库加载不正确导致的 解决方法 xff1a 通过直接下载所有模型到用户的根目录下的 gazebo models 下 cd gazebo mkdir p models
  • ubuntu环境下使用mitmproxy代理服务器

    在网上看了很多参考 xff0c 介绍的很多都是废话 xff0c 很多答案都是一样的 我最近是在用selenium工具来爬取猫眼的电影数据 xff0c 因为猫眼有文字加密和美团验证 xff0c 一般的爬取可能容易被检测 所以我使用seleni
  • ubuntu c\c++环境中第三方依赖包的使用

    第三方依赖包的使用需要导入第三方依赖包中的include和lib文件 下面例子中以ffmpeg为例 据我成功尝试之后的有这两种 xff0c 其他的方法肯定还有 xff0c 比如直接导入目前的linux环境中 xff0c 改变量啥的 xff0
  • 解决sudo rosdep init ERROR: cannot download default sources list from问题,亲测可用

    解决sudo rosdep init ERROR cannot download default sources list from问题 xff0c 亲测可用 问题描述 按照 ros installation在ubuntu 16 04上安装
  • realsense d435i SDK及ROS Wrapper安装

    1 安装Realsense SDK git clone https span class token punctuation span span class token operator span github span class tok
  • 解决Git中下载assets文件列表转圈问题

    打开的Git项目 这里我以PcapPlusPlus为例 这里一直转圈打不开 xff0c 使用F12开发者工具 xff0c 用箭头选中这个转圈得到一个网站 通过这个网站可直接打开看见assets里面的全部内容
  • Ubuntu安装CMake

    cmake所做的事其实就是告诉编译器如何去编译链接源代码 你也许想问不是有makefile吗 xff0c 为什么还要它 xff1f 这里就牵涉到跨平台问题 而且其语法也简单 卸载已经安装的旧版的CMake 非必需 apt get autor