ubuntu20.04系统下,c++图形库Matplot++配置

linux下安装c++图形库Matplot++,使得c++可以可视化编程;安装Matplot++之前,需要先安装一个gnuplot,因为Matplot++是依赖于此库

gnuplot下载链接:
http://www.gnuplot.info/

一、gnuplot下载与安装(可以跳过,下面源码安装,直接apt install gnuplot)

下面==gunplot的安装步骤可以跳过,直接用apt包管理器安装==

step1.进入链接点击Release链接,如下图所示
step2. 选择tar.gz后缀文件,进行下载:
step3.下载成功后,cd进入安装包的目录,然后使用tar命令进行解压;
bash 复制代码
tar -zxvf gnuplot-6.0.1.tar.gz

tar -zxvf 是用于解压 .tar.gz 格式压缩包的常用命令,其中每个参数的含义如下:

  • -z :通过 gzip 进行解压缩。.tar.gz 文件是先用 tar 进行打包,然后用 gzip 压缩的。
  • -x:解压文件(extract)。
  • -v:显示解压过程中的文件列表(verbose)。
  • -f:指定要操作的文件(file)。这个选项需要紧跟在压缩文件名之前。
step4. 解压缩后进入此文件夹
bash 复制代码
cd gnuplot-6.0.1
step5. 进入文件夹后,做一些依赖配置
bash 复制代码
sudo apt install qtbase5-dev qtbase5-dev-tools libqt5svg5-dev qttools5-dev-tools

此命令安装一些依赖,包括qt5相关的一些工具,这里如果后面报错,可能是系统还缺乏其他依赖,可以再问下gpt,进行补充安装;

step6 .配置编译选项:
bash 复制代码
./configure --prefix=/usr/local/gnuplot --with-qt=qt5

其中,--perfix是设置安装路径,--with是设置依赖

step 7. 编译,安装

首先使用make命令进行编译

这里编译不通过可能是缺少依赖,具体缺少什么,可以自行检查;

然后再安装:

bash 复制代码
sudo make install
step8. 配置环境变量

配置环境变量:

使用gedit打开.bashrc

bash 复制代码
sudo gedit ~/.bashrc

在结尾加入下面环境变量设置并保存:

bash 复制代码
# for gnuplot
export GNUPLOT=/usr/local/gnuplot
export PATH=/usr/local/gnuplot/bin:$PATH
export MANPATH=/usr/local/gnuplot/share/man/man1:$MANPATH

保存后记得刷新一下环境变量设置:

bash 复制代码
source ~/.bashrc

然后可以用以下命令进行测试:

bash 复制代码
which gnuplot
gnuplot--version
gnuplot

下面用which,出现路径则说明安装成功。

二、Matplot++下载配置

下载链接:
https://alandefreitas.github.io/matplotplusplus/

进入网址,下滑,点击download按钮

链接会跳转到github,然后不要选择最新的,而是选择下面的1.2.0版本,因为这个版本有编译后的软件包,安装起来比较方便。

下载后安装Matplot++

首先,进入下载的目录,进行安装包解压,并进入解压后的文件夹;

bash 复制代码
tar -xvzf Matplot++-1.2.0-Linux.tar.gz
cd Matplot++-1.2.0-Linux

会有两个文件

这两个文件内部都是直接已经编译好的,可以直接放到ubuntu的对应系统目录里,编译器便可以识别到。

bash 复制代码
sudo mv ./include/matplot/  /usr/local/include/
sudo mv ./lib/*   /usr/local/lib/

最后,要进行包含头文件,以及对CmakeList.txt的编写,以管理库依赖,C++包含:

cpp 复制代码
#include "matplot/matplot.h"

这里这个头文件的写法,是因为,默认编译器会搜索到/user/loacal/include这一层,这一层都是文件夹,比如matplot就在这层级,而matplot.h在matplot文件夹下,故要#include "matplot/matplot.h"这样包含。

CMakeLists添加:

重点是以下几个命令的添加。

bash 复制代码
find package(Matplot++REQUIRED)
if (TARGET Matplot++:matplot)
message(STATUS "**Matplot++found ***")
endif()
target link libraries(${PROJECT NAME}
PUBLIC
Matplot++:matplot)

完整的CMakeLists.txt文件为:

bash 复制代码
cmake_minimum_required (VERSION 3.10)
project(test)
set(CMAKE_CXX_STANDARD 11)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)

find_package(Matplot++ REQUIRED)
if (TARGET Matplot++::matplot)
message(STATUS "**Matplot++found**")
endif()
add_executable(matplottest test.cpp)

target_link_libraries(matplottest
PUBLIC
Matplot++::matplot
)

然后,Matplot++的官网有很多示例,可以学习使用;
https://alandefreitas.github.io/matplotplusplus/

下面是自己的文件结构:

然后点击左下角的build按钮进行编译,点击左下角的运行按钮,便可以画出图。

相关推荐
Am心若依旧4097 分钟前
[c++高阶]模版进阶
开发语言·c++
windxgz14 分钟前
FFMPEG总结——底层调用COM导致编码器无法正常打开
c++·qt·ffmpeg
白如意i15 分钟前
在Ubuntu 16.04上安装最新版本的MySQL的方法
linux·mysql·ubuntu
CP-DD37 分钟前
Linux 网络配置 (深入理解)
linux·网络·php
TravisBytes40 分钟前
Protobuf 为什么这么快?解密它背后的高效编码机制与 C++ 实践
c++·分布式·go
测试界柠檬1 小时前
基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程
自动化测试·软件测试·python·功能测试·程序人生·ubuntu·jenkins
"Return"1 小时前
小红书2024秋招后端开发(Java工程师、C++工程师等)
java·开发语言·c++
绯樱殇雪1 小时前
编程题 7-14 求整数段和【PAT】
c++·pat考试
shelby_loo1 小时前
在 Ubuntu 下通过 Docker 部署 NAS 服务器
服务器·ubuntu·docker
qq_544329171 小时前
需求6:如何写一个后端接口?
linux·服务器·windows