목차
I. 소개
이 기사는 주로 cmake를 사용하여 오픈 소스 QHexView를 정적 라이브러리로 컴파일하는 방법을 간략하게 설명합니다.저자는 기본적으로 독자가 cmake를 다운로드하여 성공적으로 설치했으며 QHexView 소스 코드를 다운로드했습니다. 작성자 는 다음과 같이 독자들에게 cmake 및 QHexView 다운로드 링크를
제공
합니다
.
작가와 다르다.
둘, cmake 컴파일
1. 빌드 폴더 생성
cmake 컴파일로 생성된 파일을 저장하기 위해 QHexView에 빌드 폴더를 만듭니다.
2. 디렉토리 로드
- QHexView 소스 디렉토리 로드(소스 찾아보기)
- 생성된 폴더 디렉터리(1단계, 빌드 찾아보기에서 생성한 빌드 디렉터리)를 로드하고 컴파일합니다.
- 구성
- 다음과 같이 프로젝트를 생성하려면 선택합니다. 여기에서는 Visual Studio 12 2013 프로젝트를 컴파일하고 생성하도록 선택합니다.
- 생성 플랫폼을 선택하면 arm, win32, x64를 선택할 수 있습니다. 예: 여기서는 win32를 컴파일하고 생성하도록 선택합니다.
- 기본값을 유지하고 마침을 클릭합니다.
3. Qt5_DIR 로드
- 빨간색 영역에 Qt5_DIR-NOTFIND가 표시됩니다.
- 팝업창에서 확인 클릭
- 빨간색 영역을 클릭하여 Qt5_DIR-NOTFIND를 표시하면 세 개의 점이 나타납니다. 클릭하여 입력합니다. 그런 다음 D:\Qt\Qt5.6.3\5.6.3\msvc2013\lib\cmake\Qt5에서 Qt5 폴더를 찾고 Qt5 폴더를 선택합니다. 여기서 D 드라이브는 다른 드라이브일 수 있습니다. 선택할 경로에 따라 Qt를 설치하십시오.
4. 구성 및 생성
- 구성을 클릭합니다.
- 생성을 클릭하면 구성 완료 생성 완료가
나타납니다 .
5. 빌드 디렉토리 보기
이 시점에서 우리는 빌드 디렉토리에서 cmake가 그림에 표시된 파일을 생성했음을 알 수 있습니다. vs2013을 사용하여 QHexView.sln 솔루션을 열 수 있습니다.
6. 컴파일
생성 > 솔루션 생성, 그림과 같이 ...\QHexView\build\Debug 폴더에 qhexview.lib 파일이 생성되었습니다.
7. 정적 라이브러리 파일 보기
이 시점에서 정적 라이브러리가 컴파일됩니다.
3. 사용방법
1. 라이브러리 추가
프로젝트 파일을 마우스 오른쪽 버튼으로 클릭> 라이브러리 추가
2. 외부 라이브러리
외부 라이브러리 선택
3. 라이브러리 로드
3.1 라이브러리 파일 선택
...\QHexView\build\Debug 아래에서 qhexview.lib 파일을 선택합니다.
3.2 포함 경로 선택
- 포함 경로 선택: ...\QHexView
- 창 선택
- 정적 라이브러리 선택
- 빨간색 상자에서 선택된 모든 옵션 제거
4. 마무리
5.qmake
빌드하고 클릭하여 qmake 실행
4. 예제 코드
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;
}