Ubuntu-22.04编译安装FLTK

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、FLTK是什么?
  • 二、下载源代码
  • 三、准备编译环境
  • 四、编译
  • 五、运行测试程序
  • 六、Demo
  • 总结


前言

最近在研究FLTK,突然对它感了兴趣,就想使用Clion跑一些项目。经过一下午不断摸索,终于在Linux上跑起来了Demo,现在分享给需要的各位。

CPU:I5 13600KF
OS:Ubuntu-22.04 64bits


一、FLTK是什么?

FLTK (Fast Light Tool Kit 发音为full tick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000/XP/Vista/7/10/11和MacOS操作系统平台,相 对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性。

研究它纯粹是因为移植性还可以,而本身又属于比较轻量化的图形库,如果像开发炫酷的GUI,推荐还是QT5或QT6,这都是后话了。

二、下载源代码

我反正是没找到bin,只找到源代码。
官网下载页面

如果你跟我一样是Ubuntu-22.04,建议你下载1.3.9以后的版本,兼容性会更好,不保证之前的版本可以运行在Ubuntu-22.04上。

在这里插入图片描述

三、准备编译环境

我使用的是GNU环境,系统自带的,你可以按照我的步骤,缺什么安装什么。

四、编译

这里使用configure编译,这个比Cmake方便。

这里如果你只需要静态库就什么都不配置,默认安装在/usr/local

./configure

如果你需要自定义安装目录就使用下面的配置

./configure --prefix=<你的目录>

如果你需要动态库就使用下面的配置

./configure --prefix=<你的目录> --enable-shared=yes

配置好了

make -j4 && make install

五、运行测试程序

自带了一个测试程序fluid,双击即可运行。成功后大概是长这样。
在这里插入图片描述

六、Demo

怎么会没有测试代码呢,要不然别人认为我忽悠呢。这里如果你的系统自带jpeg、png和libz库就不需要使用内建的库了,如果没有就使用内建,运行效果一样的。

CmakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(fltk_demo)

set(CMAKE_CXX_STANDARD 11)
include_directories(include)
include_directories(include/FL)
include_directories(include/FL/images)

link_directories(/opt/fltk-1.3.9/lib)

add_executable(fltk_demo main.cpp)
target_link_libraries(${PROJECT_NAME} fltk_forms)
target_link_libraries(${PROJECT_NAME} fltk_images)
target_link_libraries(${PROJECT_NAME} fltk_gl)
target_link_libraries(${PROJECT_NAME} fltk)

main.cpp

#include <iostream>
#include <Fl.H>
#include <Fl_Window.H>
#include <Fl_Box.H>


int main(int argc, char **argv) {
    auto *window = new Fl_Window(340, 180);
    auto *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();
}

运行结果大概是下面这样
在这里插入图片描述


总结

1、我拿Windows的代码直接在Ubuntu上编译运行,一句代码都没有改,这种移植性非常好。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

猫粮选择困难?5款性价比高的主食冻干品牌推荐

近年来&#xff0c;冻干猫粮作为热门的高品质猫粮&#xff0c;受到了许多追求纯天然、健康食品的铲屎官的关注。萌新铲屎官就很疑惑了冻干猫粮可以代替猫粮作为主食吗&#xff1f;冻干猫粮真就那么好吗&#xff1f; 那么今天作为一个宠物店店长&#xff0c;跟大家一起聊聊各种…

UG模型的显示与隐藏

在UG中&#xff0c;除了通过图层的方式控制模型的显示与隐藏外&#xff0c;还可以直接通过显示与隐藏命令&#xff0c;位置在菜单-编辑-显示与隐藏&#xff0c;需要注意的是这些命令只能对可视图层中的模型进行控制 显示与隐藏&#xff1a;ctrl w 可以通过模型的类别&#xf…

系统架构设计师笔记

第1章计算机组成与体系结构 1.1.1计算机硬件的组成 &#xff08;1&#xff09;控制器。控制器是分析和执行指令的部件&#xff0c;也是统一指挥并控制计算机各部件协调工作的中心部件&#xff0c;所依据的是机器指令。控制器的组成包含如下。 ①程序计数器PC&#xff1a;存储下…

忻府区政协主席郭新和带队视察洁晋发电环保教育基地中国流动科技博物馆展厅

忻府区政协主席郭新和带队视察洁晋发电环保教育基地中国流动科技博物馆展厅 2023年12月5日&#xff0c;忻府区政协主席郭新和带队视察中国流动科技博物馆展览情况。 郭新和一行来到位于忻州市洁晋发电有限公司环保教育基地的中国流动科技馆忻府区展厅。展厅内配备了科普知识展…

2023 年备受瞩目的向量数据库赛道盘点出炉

近日&#xff0c;Zilliz 捷报频传&#xff0c;先后斩获来自极客公园、量子位、界面科技、OSCHINA 等行业头部媒体所颁发的奖项以及荣登相应榜单。 接下来&#xff0c;就让我们一起来了解一下这些颇受业界认可的奖项及榜单&#xff5e; 2023 中国创新力量 50 榜单 【2023 中国创…

托盘在线缠绕机

托盘在线式缠绕机是适应流水线作业的包装机械&#xff0c;很适合现代化企业的自动化包装的需要&#xff0c;对提高包装效率&#xff0c;降低劳动强度&#xff0c;有效利用人力资源&#xff0c;起到较好的作用。目前&#xff0c;托盘在线缠绕机已经在化工、电子、食品、饮料、造…

小李的2023年度读书盘点

小李的2023年度读书盘点 主题读书 1、纪实文学 和去年一样&#xff0c;依然以上海译文出版社的“译文纪实”系列图书为主。该系列大部分图书质量说得过去&#xff0c;今年读的几本中&#xff0c;一本不及格&#xff08;3/5星以下&#xff09;&#xff0c;《打工女孩》&#…

Facebook企业户与个人户的区别是什么?一文带你看懂Facebook企业户!

Facebook 作为最大的社交平台之一&#xff0c;吸引了大多数的卖家进行投放广告&#xff0c;并且投放广告的效果也是很不错的。Facebook个人账户大家都不陌生&#xff0c;那么 Facebook 有企业户吗&#xff1f;当然是有的&#xff0c;Facebook 有针对企业和品牌的专门广告账户&a…

10 种最佳排序算法原理及代码

什么是排序算法? 从本质上讲&#xff0c;排序算法是一种计算机程序&#xff0c;它将数据组织成特定的顺序&#xff0c;例如字母顺序或数字顺序&#xff0c;通常是升序或降序。 排序算法能干啥? 排序算法主要用于以有效的方式重新排列大量数据&#xff0c;以便更容易地进行搜…

围栏中心点

后端返回的数据格式是 [{height: 0,lat: 30.864277169098443,lng:114.35252972024682}{height: 1,lat: 30.864277169098443,lng:114.35252972024682}.........]我们要转换成 33.00494857612568,112.53886564762979;33.00307854503083,112.53728973842954;33.00170296814311,11…

MySQL日期查询 今天、明天、本月、下月、星期、本周第一天、本周最后一天、本周七天日期

文章目录 今天日期明天日期本月第一天本月最后一天下个月第一天当前月已过几天当前月天数当前月所有日期获取星期本周第一天本周最后一天获取本周的七天日期今天日期 select curdate()明天日期 select DATE_SUB(curdate(),INTERVAL -1 DAY) AS tomorrow本月第一天 select da…

阿春的450MT售价提前大曝光,符合你的预期吗?

最新消息&#xff0c;阿春的450MT在国外的官网上已经曝光&#xff0c;售价8990澳元&#xff0c;折合RMB 4.35万元&#xff0c;毕竟对他们来说这也是进口车嘛。那么从这个售价可以看出一些端倪&#xff0c;同平台的450SR海外售价8290澳元&#xff0c;450MT和450SR差价700澳元&am…

UI自动化测试的痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验&#xff0c;由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的&#xff0c;然后在慢慢的接触 U…

idea设置自定义快捷键定义代码块

文章目录 idea设置自定义快捷键定义代码块1、首先打开setting然后找到editor中的live templates2、点击加号先新建一个Mygroup3、然后就可以按下图添加自己的group进行代码块快捷键的设置了 idea设置自定义快捷键定义代码块 1、首先打开setting然后找到editor中的live templat…

RK3568驱动指南|第八篇 设备树插件-第84章设备树插件参考资料介绍

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

基于合宙Air700E的4G环境监测节点(温湿度、气压等数据),通过MQTT上传阿里云物联网平台

基于合宙Air700E的4G环境监测节点&#xff08;温度、湿度、气压等数据&#xff09;&#xff0c;通过MQTT上传阿里云物联网平台。 介绍 合宙Air700E 4G模块读取传感器&#xff08;温湿度、气压等&#xff09;数据并通过MQTT协议上传阿里云物联网平台&#xff0c;数据也会同时显…

最新9.9付费进群saas系统源码已修复定位及已知bug

距上版&#xff0c;优化一下功能&#xff0c;修复了已知问题及定位功能 1.九块九加群微信裂变人脉吃瓜宝妈同城相亲交友取图表情包 2.支持创建各种付费群&#xff0c;表情&#xff0c;吃瓜&#xff0c;创业&#xff0c;资源等等 3.支付对接第三方易支付&#xff0c;随便一家…

探索 WebRTC:数字世界的实时通信魔法

前言 在当今日常生活中&#xff0c;我们期望能够随时随地与朋友、同事或家人进行实时沟通。WebRTC&#xff08;Web实时通信&#xff09;技术就像一种魔法&#xff0c;让这些交流变得无比便捷&#xff0c;而且完全在浏览器中实现&#xff0c;无需下载任何额外应用或插件。 Web…

《Vue2.X 进阶知识点》- 防 ElementUI Divider 分割线

前言 使用 el-divider 背景为白色是没问题的。 但当背景换成其它颜色&#xff0c;问题就出现了&#xff01;&#xff01; 仔细看原来是两层&#xff0c;默认背景色是白色。 想着把背景色改为透明应该能用&#xff0c;结果发现背面是一条实线&#xff0c;难怪要用白色遮挡…不符…

python实现文件下载上传

一、文件下载到本地 import requests if __name__ __main__:response requests.get("https://dfcv-shop.oss-cn-hangzhou.aliyuncs.com/dfcv-shop0177bf6b34ee46c68be412d04654439c.jpg")local_filename "./dfcv-shop0177bf6b34ee46c68be412d04654439c.jpg&…