用cmake将QHexView编译成静态库

一、前言

本文主要简述了如何利用cmake将开源QHexView编译生成静态库,笔者默认读者已经下载并成功安装了cmake,且已经下载了QHexView源码。笔者为读者提供了cmake和QHexView下载链接如下
cmake下载官网
github QHexView源码
笔者做了qt5.6.3兼容处理的QHexView
笔者建议是用处理过的QHexView进行编译,否则跟读者编译结果跟笔者可能有些许差别

二、cmake编译

1.创建build文件夹

在QHexView中创建build文件夹,目的:为了保存cmake编译生成的文件

请添加图片描述

2.加载目录

  • 加载QHexView源码目录(Browse Source)
  • 加载编译生成文件夹目录(我们step1中创建的build目录,Browse Build)
  • 配置(Configure)
  • 选择生成工程,如:这边我选择编译生成Visual Studio 12 2013工程
  • 选择生成平台,可选arm,win32,x64.如:这边我选择的是编译生成win32
  • 保持默认,点击完成即可

请添加图片描述

3.加载Qt5_DIR

  • 红色区域显示Qt5_DIR-NOTFIND
  • 点击弹窗的ok
  • 点击红色区域显示Qt5_DIR-NOTFIND,会出现三个点,点进去。然后找到D:\Qt\Qt5.6.3\5.6.3\msvc2013\lib\cmake\Qt5中Qt5这个文件夹,选择Qt5文件夹即可,此处的D盘可以是其他盘,请根据你安装Qt的路径去选择

请添加图片描述
请添加图片描述

4. 配置、生成

  • 点击Configure
  • 点击Generate
    出现
    Configuring done
    Generating done
    即可

请添加图片描述
请添加图片描述

5.查看build目录

此时我么可以看到build目录中,cmake已经生成了如图所示文件,我们可以用vs2013打开解决方案QHexView.sln

请添加图片描述

6.编译

生成>生成解决方案,如图所示,已经生成qhexview.lib文件在…\QHexView\build\Debug文件夹中

请添加图片描述

7.查看静态库文件

至此,静态库编译完成

请添加图片描述

三、使用说明

1.添加库

在工程文件上点击鼠标右键>添加库

请添加图片描述

2.外部库

选择外部库

请添加图片描述

3.加载库

3.1选择库文件

选择…\QHexView\build\Debug下的qhexview.lib文件

请添加图片描述

3.2 选择包含路径

  • 选择包含路径:…\QHexView
  • 选择windows
  • 选择静态库
  • 去掉红色方框中所有打勾选项

请添加图片描述

4.完成

请添加图片描述

5.qmake

构建下点击执行qmake

请添加图片描述

四、实例代码

1.头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDebug>
#include <QGridLayout>
#include <QPushButton>

#include "QHexView/qhexview.h"


namespace Ui {
    
    
class MainWindow;
}

class MainWindow : public QMainWindow
{
    
    
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:


private:
    Ui::MainWindow *ui;
    QHexView *m_hexView;
};

#endif // MAINWINDOW_H

2.源文件

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    
    
    ui->setupUi(this);
    m_hexView = new QHexView(true,this);
    setCentralWidget (m_hexView);

    QByteArray data("123456");
    m_hexView->setShowData (data);

}

MainWindow::~MainWindow()
{
    
    
    delete ui;
}

五、演示效果

请添加图片描述

猜你喜欢

转载自blog.csdn.net/qq_42815643/article/details/129279619