C++ GUI库FLTK的基本使用

文章目录

  • 1. Ubuntu下FLTK编译和使用
  • 2. Windows下FLTK编译使用

1. Ubuntu下FLTK编译和使用

  • 编译源码
    • 安装依赖
    sudo apt install libx11-dev
    sudo apt install cmake make
    
    • 编译
    # 进入源码目录fltk-1.3.9
    mkdir build
    cd build
    cmake ..
    make
    
    • 库文件位于build/lib
  • 准备头文件
    # 此时位于build目录下
    mkdir include
    cp -r ../FL include/
    cp FL/abi-version.h include/FL/
    
  • 将库文件和头文件转移到项目目录,文件组织结构如下
    fltk-1.3.9-build
    |--- include
    |--- lib
    helloworld.cpp
    CMakeLists.txt
    
    • helloworld.cpp
    #include <FL/Fl.H>
    #include <FL/Fl_Window.H>
    #include <FL/Fl_Box.H>int main(int argc, char **argv) 
    {Fl_Window *window = new Fl_Window(340,180);Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");box->box(FL_UP_BOX);box->labelfont(FL_BOLD+FL_ITALIC);box->labelsize(36);box->labeltype(FL_SHADOW_LABEL);window->end();window->show(argc, argv);return Fl::run();
    }
    
    • CMakeLists.txt
    cmake_minimum_required(VERSION 3.20)
    project(HelloWorld)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/fltk-1.3.9-build/include)
    link_directories(${CMAKE_CURRENT_SOURCE_DIR}/fltk-1.3.9-build/lib)
    add_executable(${PROJECT_NAME} helloworld.cpp)
    target_link_libraries(${PROJECT_NAME} PRIVATE fltk X11 dl)
    

2. Windows下FLTK编译使用

使用MinGW的命令:cmake .. -G "MinGW Makefiles"
使用MinGW生成的库文件为*.a
使用MinGW可能出现链接错误
安装w64devkit,包含gcc、g++、make等构建工具。

  • 编译源码
    # 当前目录为fltk-1.3.9
    mkdir build
    cd build
    # cmake .. -G "MinGW Makefiles"
    cmake ..
    # 使用VS打开解决方法,编译ALL_BUILD
    
    • 库文件位于build/lib/Release|Debug
  • 准备头文件
    # 此时位于build目录下
    mkdir include
    # 将../FL复制到include/
    # 将FL/abi-version.h复制到include/FL/
    
  • 将库文件和头文件转移到项目目录,文件组织结构如下
    fltk-1.3.9-build
    |--- include
    |--- lib
    helloworld.cpp
    CMakeLists.txt
    
    • CMakeLists.txt
    cmake_minimum_required(VERSION 3.20)
    project(HelloWorld)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/fltk-1.3.9-build/include)
    link_directories(${CMAKE_CURRENT_SOURCE_DIR}/fltk-1.3.9-build/lib/Release)
    add_executable(${PROJECT_NAME} WIN32 helloworld.cpp)
    target_link_libraries(${PROJECT_NAME} PRIVATE fltk)
    
  • 编译运行
    # 此时位于项目目录
    mkdir build
    cd build
    cmake ..
    # 使用VS打开sln文件
    # 编译ALL_BUILD
    # 运行HelloWorld.exe
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/754926.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【如何关闭Windows自动更新的6种方法】

关闭Windows自动更新的6种方法 1. 前言2. 方法1&#xff1a;使用本地组策略编辑器&#xff08;适用于Windows 10 Pro和Enterprise版本&#xff09;3. 方法2&#xff1a;使用注册表编辑器4. 方法3&#xff1a;服务管理5. 方法4&#xff1a;使用控制面板&#xff08;仅适用于Wind…

【Golang星辰图】Go语言驾驭物联网:探索MQTT、CoAP、GPIO、串口、TLS和UDP的实现

打通物联网通信路&#xff1a;Go语言实现MQTT、CoAP、GPIO、串口、TLS和UDP协议详解 前言 物联网&#xff08;IoT&#xff09;的快速发展给设备间的通信提出了新的需求。本文将介绍使用Go语言实现物联网常用通信协议的相关库&#xff0c;包括MQTT、CoAP、GPIO、串口、TLS和UD…

服务器时间不准确的风险

1.误导系统记录&#xff1a;服务器时间不准确会误导系统记录文件的创建时间&#xff0c;导致文件的顺序发生变化。这对于需要按照时间顺序处理文件的系统来说&#xff0c;可能会引发严重的问题。 2.影响任务执行&#xff1a;对于有时间依赖的任务&#xff0c;服务器时间不准确会…

[c++]内存管理

1. C/C内存分布 我们先来看下面的一段代码和相关问题 int globalVar 1; static int staticGlobalVar 1; void Test() { static int staticVar 1; int localVar 1; int num1[10] { 1, 2, 3, 4 }; char char2[] "abcd"; const char* pChar3 "abcd"; …

C++11 新特性:常量表达式 constexpr(上)

C11 引入了constexpr关键字&#xff0c;用于定义常量表达式&#xff0c;从而使变量获得在编译阶段即可计算出结果的能力&#xff0c;提高运行时的效率。 constexpr 的使用分两篇文章介绍&#xff0c;今天这篇文章主要讲解什么是常量表达式和 constexpr 典型使用场景的前三种用…

分布式事务的解决方案--Seata架构

一、Seata的XA模式 二、AT模式原理 三、TCC模式原理 四、MQ分布式事务 异步&#xff0c;非实时&#xff0c;实现最终的一致性。 四、分布式事务的解决方案

Stable Diffusion WebUI 生成参数:宽度/高度/生成批次/每批数量/提示词相关性/随机种子

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里。 大家好&#xff0c;我是水滴~~ 本文将继续了解 Stable Diffusion WebUI 的生成参数&#xff0c;主要内容有&#xff1a;宽度、高度、生成批次、每批数量、提示词相关性、随机种子。希望能对你…

Visual Studio 2022下配置 OpenMP 多线程编程环境与运行

目录 一创建项目时选择“创建新项目 -> 空项目 -> 下一步 -> 创建” 二右键“源文件 -> 添加 -> 新建项 -> 添加” 三配置 1. 测试程序&#xff1a; 最开始的时候错误很多&#xff1a; 2.将 “ include "stdafx.h" ” 删掉&#xff0c;添加 “…

电影院售票网站|基于SSM框架+ Mysql+Java+ B/S结构的电影院售票网站设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

linux安装mysql8.x

检查卸载mysql 1.查看当前安装mysql情况&#xff0c;查找以前是否装有mysql [rootmaster01 /]# rpm -qa|grep -i mysql mysql-libs-5.1.73-8.el6_8.x86_642.执行命令删除安装的MySQL [rootmaster01 /]# rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps3.查看之前安装的MySQ…

操作系统知识-存储管理+文件管理管理-嵌入式系统设计师备考笔记

0、前言 本专栏为个人备考软考嵌入式系统设计师的复习笔记&#xff0c;未经本人许可&#xff0c;请勿转载&#xff0c;如发现本笔记内容的错误还望各位不吝赐教&#xff08;笔记内容可能有误怕产生错误引导&#xff09;。 本章的主要内容见下图&#xff1a; 1、存储管理&#…

【算法与数据结构】二叉树(前中后)序遍历

文章目录 &#x1f4dd;前言&#x1f320; 创建简单二叉树&#x1f309;二叉树的三种遍历&#x1f320;前序&#x1f309;中序遍历 &#x1f320;后序遍历 &#x1f320;二叉树节点个数&#x1f309;二叉树节点个数注意点 &#x1f6a9;总结 &#x1f4dd;前言 一棵二叉树是结…

6-181 统计无向图的连通分量

要求实现函数,能够统计并返回无向图(顶点数不超过100)的连通分量(极大连通子图)数,可增加自定义函数或借助STL(标准模板库)之queue(队列)。无向图采用邻接矩阵存储,输入的顶点从1开始编号,但顶点下标从0开始使用。 函数接口定义: int CountSubGraph(int mat[][N…

C++提高笔记(六)---STL函数对象、STL常用算法(遍历、查找)

1、STL-函数对象 1.1函数对象 1.1.1函数对象概念 概念&#xff1a; 重载函数调用操作符的类&#xff0c;其对象常称为函数对象 函数对象使用重载的()时&#xff0c;行为类似函数调用&#xff0c;也叫仿函数 本质&#xff1a;函数对象(仿函数)是一个类&#xff0c;不是一个…

linux常用指令

前言 大家好我是jiantaoyab&#xff0c;这篇文章给大家介绍Linux下常用的命令。 指令的本质也是Linux上的一些程序。 cd cd - 回到最近从哪来的路径 cd ~ 当前用户对应的工作目录&#xff08;普通用户&#xff1a;/home/xx root用户&#xff1a;/root&#xff09; cd / 去…

C语言经典面试题目(十九)

1、什么是C语言&#xff1f;简要介绍一下其历史和特点。 C语言是一种通用的高级计算机编程语言&#xff0c;最初由贝尔实验室的Dennis Ritchie在1972年至1973年间设计和实现。C语言被广泛应用于系统编程、应用程序开发、嵌入式系统和操作系统等领域。它具有高效、灵活、可移植…

【vscode】vscode重命名变量后多了很多空白行

这种情况&#xff0c;一般出现在重新安装 vscode 后出现。 原因大概率是语言服务器没设置好或设置对。 以 Python 为例&#xff0c;到设置里搜索 "python.languageServer"&#xff0c;将 Python 的语言服务器设置为 Pylance 即可。

React全家桶及原理解析-lesson4-Redux

lesson4-react全家桶及原理解析.mov React全家桶及原理解析 React全家桶及原理解析 课堂⽬标资源起步Reducer 什么是reducer什么是reduceRedux 上⼿ 安装reduxredux上⼿检查点react-redux 异步代码抽取Redux拓展 redux原理 核⼼实现中间件实现redux-thunk原理react-redux原理 实…

AI和信号处理推荐书单

推荐AI书单 1、《动手学深度学习-pytorch版》 https://item.m.jd.com/product/10068173196371.html?utm_sourceiosapp&utm_mediumappshare&utm_campaignt_335139774&utm_termCopyURL&ad_odshare&gxRnAomTM2bWfQmswcp40mDrUkxA7sLkk&gxdRnAoymFZOTXe…

【数据可视化】Echarts官方文档及常用组件

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. Echarts官方文档介绍3. ECharts基础架构及常用术语3.1 ECharts的基础架构3.2 ECharts的常用术语3.2.1 ECharts的基本名词3.2.2 ECharts的图表名词 4. 直角坐标系下的网格及坐标轴4.1 直角坐标系下的网格4.2…