WSL 2 中 FastReport 与 FastCube 的设置方法与优化策略
软件开发人员长期以来一直在思考这个问题:“我们如何才能直接在 Windows 中运行 Linux 应用程序,而无需使用单独的虚拟机?”
WSL 技术为这个问题提供了一个可能的答案。WSL 的历史始于 2016 年。当时,其实现涉及使用 Windows 内核中的系统调用运行 Linux 二进制可执行文件。第一个版本还包括通过一个层来翻译系统调用来模拟 Linux 内核。
WSL 的第二个版本于 2019 年发布,具有与系统调用的完全兼容、功能齐全的 Linux 内核、对 GPU 的支持以及对具有图形用户界面的 Linux 应用程序的支持。
在本文中,我们将探讨如何设置 WSL 2 以使用 Linux 版 Lazarus 中的 FastReport 和 FastCube 组件。
FastReport .NET 是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。
在 WSL 2 中安装和设置 Ubuntu 24.04
以管理员身份启动 Windows 命令行。要显示所有可用 Linux 发行版的列表,您需要在 Windows 命令行中输入命令并按 Enter:
wsl --list --online或wsl -l -o
要安装 Ubuntu 24.04,请运行以下命令:
wsl——安装-d Ubuntu-24.04
安装发行版后,系统将提示您创建用户帐户和密码。
要安装 Ubuntu 24.04,您只需运行几个命令。
安装发行版后,可以从 Windows 开始菜单使用 Ubuntu 24.04 终端。您还可以使用 Windows 命令行中的命令启动 Linux 内核并进入 Ubuntu 24.04 终端:
wsl -d Ubuntu-24.04
安装 Ubuntu 24.04 后,您需要更新软件包。要更新已安装的软件包,请在 Ubuntu 24.04 终端中运行以下命令:
$ sudo apt update && sudo apt upgrade && sudo apt dist-upgrade
输入用户密码,按回车键。等待同意更新软件包的请求。输入 Y,按回车键确认。
要安装 Nautilus,请在终端中运行此命令,然后输入以下命令直接启动 Nautilus。
$ sudo apt install nautilus -y
$ nautilus
安装后,可以从 Windows 开始菜单中访问 Nautilus 文件管理器。
在 WSL 2 中安装和设置 Linux 11 Starterkit
WSL 2 子系统允许您通过从 tar 文件导入来使用任何 Linux 发行版。以管理员身份运行 Windows 命令行。运行以下命令将 Linux rootfs 映像下载到 C\: 驱动器的根目录:
curl -o C:\alt-p11-rootfs-systemd-x86_64.tar.xz https://ftp.altlinux.org/pub/distributions/Linux/p11/images/cloud/x86_64/alt-p11-rootfs-systemd-x86_64.tar.xz
要将发行版导入 WSL 2,需要在 Windows 命令行中运行以下命令:
wsl --import Linux-11 C:\Linux-11 C:\alt-p11-rootfs-systemd-x86_64.tar.xz
导入后,Linux 硬盘镜像文件将位于C:\Linux-11\ext4.vhdx。在 Windows 命令行中,运行命令以显示所有已注册发行版的列表。然后运行新导入的 Linux-11 发行版
wsl-l-v
wsl-d Linux-11
启动 Linux 后,将打开一个终端。在此发行版的 WSL 配置文件中,您需要启用 systemd 的使用:
# echo -e “[boot]\nsystemd=true\n” > /etc/wsl.conf
为了使 systemd 正常工作,您需要停止并重新启动发行版。为此,请使用以下命令:
# 导出
wsl-t Linux-11
wsl-d Linux-11
要更新软件包,您需要运行以下命令,然后等待同意更新软件包的请求。输入 Y 并按 Enter 确认。
# apt-get 更新 && apt-get dist-upgrade
为了确保字体显示正确,您需要安装以下包:
#apt-get 安装字体-ttf-ms
要安装并运行 Lazarus,您需要下载命令行实用程序 make,然后安装 Free Pascal 编译器和 Lazarus IDE:
#apt-get 安装 make
# apt-get 安装 fpc && apt-get 安装 fpc-src
#apt-get 安装 lazarus
安装已完成。要启动 Lazarus,请运行以下命令:
# 启动lazarus
Linux 中应用程序开发的 FastReport 安装
在开始安装FastReport和FastCube组件之前,您需要下载安装包。在Linux-11终端中,运行安装wget的命令,然后输入Y并按Enter确认您的操作。
#apt-get 安装 wget
下载 FastReport 和 FastCube 包的试用版:
# wget https://www.fast-report.com/public_download/fr.vcl/fast_report-trial.rpm
# wget https://www.fast-report.com/public_download/fr.vcl/fast_cube-trial.rpm
要安装 FastReport,请在终端中运行以下命令:
#apt-get 安装./fast_report*.rpm
在安装FastReport软件包之前,您需要编译Lazarus附带的软件包并安装其他库:
# lazbuild --build-ide=--add-package /usr/lib64/lazarus/components/tachart/print/tachartprint.lpk
# lazbuild --build-ide=--add-package /usr/lib64/lazarus/components/tachart/tachartlazaruspkg.lpk
# apt-get 安装 sqlite3 libsqlite3-devel
之后,依次运行以下命令来编译FastReport包:
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/fs_lazarus.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/fr_lazarus.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frxe_lazarus.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frCS_lazarus.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frxchartlazarus.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frxlazdbf.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frxSmartMemo_Laz.lpk
# lazbuild --build-ide=--add-package /usr/share/FastReport*/Lpks/fqb*.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frxlazsqlite.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastReport*/Lpks/frxPDFlazarus.lpk
在Linux中安装用于应用程序开发的FastCube
现在让我们继续安装 FastCube。在终端中运行以下命令:
#apt-get 安装./fast_cube*.rpm
然后依次运行以下命令来编译 FastCube 包:
# lazbuild --build-ide=--add-package /usr/share/FastCube*/Lpks/fcxScript.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastCube*/Lpks/fcxLazarus.lpk
# lazbuild --build-ide=--add-package /usr/share/FastCube*/Lpks/fcxCharting.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastCube*/Lpks/fcxprint.lpk
# lazbuild --build-ide=--添加包 /usr/share/FastCube*/Lpks/fcxprintTee.lpk
# lazbuild --build-ide=--add-package /usr/share/FastCube*/Lpks/fcxexport.lpk
在 Lazarus 中编译并运行 FastReport Demo
至此,FastReport 和 FastCube 的安装已完成。最后,您可以尝试编译并运行 FastReport Demo。要启动 Lazarus,请在终端中运行以下命令:
# startlazarus --skip-last-project
在 Lazarus 主菜单中,打开“项目”->“打开项目...”选项。在对话框中,选择项目:
/usr/share/FastReport - 试用/演示/FPC/FastReport/FastReportDemo.lpi
打开项目后,按F9键进行编译运行。
至此,完成了在 Lazarus for Linux 中使用 FastReport 和 FastCube 组件的 WSL 2 详细设置。
相关文章:
WSL 2 中 FastReport 与 FastCube 的设置方法与优化策略
软件开发人员长期以来一直在思考这个问题:“我们如何才能直接在 Windows 中运行 Linux 应用程序,而无需使用单独的虚拟机?” WSL 技术为这个问题提供了一个可能的答案。WSL 的历史始于 2016 年。当时,其实现涉及使用 Windows 内核…...
《线性代数》学习笔记
列向量无关 上个星期继续学线性代数,一个矩阵,如何判断它是的列向量有几个是线性无关呢?其实有好几个方法。第一个就是一个一个判断。 先选定一个,然后看下这两个,怎么看呢?如果两个列向量线性相关&#…...
Redis三种集群模式:主从模式、哨兵模式和Cluster模式
目录标题 1、背景及介绍2、 Redis 主从复制2.1、主从复制特点2.2、Redis主从复制原理2.3 PSYNC 工作原理2.3.1、启动或重连判断:2.3.2、第一次同步处理:2.3.3、断线重连处理:2.3.4、主节点响应2.3.5、全量同步触发条件:2.3.6、复制…...
CDH大数据平台部署
二、CDH简介 全称Cloudera’s Distribution Including Apache Hadoop。 hadoop的版本 (Apache、CDH、Hotonworks版本) 在公司中一般使用cdh多一些(收费的)、也有公司使用阿里云大数据平台、微软的大数据平台。 国内也有一些平台:星环大数…...
7.4、实验四:RIPv2 认证和触发式更新
源文件 一、引言:为什么要认证和采用触发式更新? 1. RIP v2 认证 RIP(Routing Information Protocol)版本 2 添加了认证功能,以提高网络的安全性。认证的作用主要包括以下几点: 防止路由欺骗 RIP v1 是不…...
【一步步开发AI运动小程序】二十一、如果将AI运动项目配置持久化到后端?
**说明:**本文所涉及的AI运动识别、计时、计数能力,都是基于云智「Ai运动识别引擎」实现。云智「Ai运动识别」插件识别引擎,可以为您的小程序或Uni APP赋于原生、本地、广覆盖、高性能的人体识别、姿态识别、10余种常见的运动计时、计数识别及…...
LED和QLED的区别
文章目录 1. 基础背光技术2. 量子点技术的引入3. 色彩表现4. 亮度和对比度5. 能效6. 寿命7. 价格总结 LED和 QLED都是基于液晶显示(LCD)技术的电视类型,但它们在显示技术、色彩表现和亮度方面有一些关键区别。以下是两者的详细区别ÿ…...
2024 年Postman 如何安装汉化中文版?
2024 年 Postman 的汉化中文版安装教程...
转化古老的Eclipse项目为使用gradle构建
很多古老的Java项目,是使用Eclipse作为IDE开发的。 那么,使用其它IDE的开发者,如何快速地进入这种古老项目的开发呢?或者说,一个Eclipse构建的古老项目,能不能转化成一个IDE无关的项目,进而所有…...
openGauss常见问题与故障处理(二)
2.网络故障定位手段 2.1 网络故障定位手段--常见网络故障引发的异常 在数据库正常工作的情况下,网络层对上层用户是透明的,但数据库在长期运行时,可能会由于各种原因导致出现网络异常或错误。 常见的因网络故障引发的异常有: 1>…...
Mysql 8迁移到达梦DM8遇到的报错
在实战迁移时,遇到两个报错。 一、列[tag]长度超出定义 在mysql中,tag字段的长度是varchar(20),在迁移到DM8后,这个长度不够用了。怎么解决? 在迁移过程中,“指定对象”时,选择转换。 在“列映…...
Android HandlerThread 基础
HandlerThread **一、HandlerThread的基本概念和用途**1. **目的**2. **与普通线程的区别** **二、HandlerThread的使用步骤**1. **创建HandlerThread对象并启动线程**2. **创建Handler并关联到HandlerThread的消息队列**3. **发送消息到HandlerThread的消息队列** **三、Handl…...
【智能算法应用】人工水母搜索算法求解二维路径规划问题
摘要 本文基于人工水母搜索算法(Jellyfish Search Algorithm, JSA),对二维路径规划问题进行了研究。JSA作为一种新兴的群体智能优化算法,模仿了水母在海洋中觅食和迁移的行为,以求解非线性、复杂的优化问题。实验结果…...
【Altium】原理图如何利用参数管理器批量修改元器件属性
【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决在使用AD设计原理图的时候,使用参数管理器批量修改元器件的属性。 2、 问题场景 客户在使用ad时,想大批量修改元器件的属性,类似于Cadence中,批量修改Manufactur…...
基于Spring Boot与Redis的令牌主动失效机制实现
目录 前言1. 项目结构和依赖配置1.1 项目依赖配置1.2 Redis连接配置 2. 令牌主动失效机制的实现流程2.1 登录成功后将令牌存储到Redis中2.2 使用拦截器验证令牌2.3 用户修改密码后删除旧令牌 3. Redis的配置与测试4. 可能的扩展与优化结语 前言 在现代Web系统中,用…...
深度学习之循环神经网络(RNN)
1 为什么需要RNN? 时间序列数据是指在不同时间点上收集到的数据,这类数据反映了某一事物、现象等随时间的变化状态或程度。一般的神经网络,在训练数据足够、算法模型优越的情况下,给定特定的x,就能得到期望y。其一…...
Autosar CP Network Management模块规范导读
Network Management模块的主要功能 网络管理适配:作为通信管理器和总线特定网络管理模块之间的适配层,实现不同总线网络管理功能的统一接口,确保系统中各种网络的协同工作。协调功能 网络协调关闭:使用协调算法协调多个网络的关闭,确保它们在合适的时间同步进入睡眠模式,…...
Xshell 7 偏好设置
1 Xshell7 工具——更改用户数据文件夹 就是此电脑目录下的文档 该目录下的7 Xshell下的 applog ColorScheme Files 配色方案文件目录 HighlightSet Files 突出显示集目录 Logs 日志 QuickButton Files 快速命令集 Scripts 脚本文件 Sessions 会话文件 会话文件目录就…...
云计算答案
情境一习题练习 一、选择题 1、在虚拟机VMware软件中实现联网过程,图中箭头所指的网络连接方式与下列哪个相关( C )。 A.仅主机模式 B.桥接 C.NAT D.嫁接 2、请问下图这个虚拟化架构属于什么类型( A …...
浅谈现货白银与白银td的价格差异
西方资本主义世界崇尚自由经济,而我国实行社会主义市场经济,因此二者在金融系统上存在不少差异,反映在贵金属市场中,可能直接表现为价格上的差异。如果投资者对此能有基本的了解,日后面对交易中的特殊价格波动…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
