当前位置: 首页 > news >正文

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 --onlinewsl -l -o

要安装 Ubuntu 24.04,请运行以下命令:

wsl——安装-d Ubuntu-24.04

安装发行版后,系统将提示您创建用户帐户和密码。

Windows 命令行

要安装 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 文件管理器。

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)技术的电视类型,但它们在显示技术、色彩表现和亮度方面有一些关键区别。以下是两者的详细区别&#xff…...

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的价格差异

西方资本主义世界崇尚自由经济,而我国实行社会主义市场经济,因此二者在金融系统上存在不少差异,反映在贵金属市场中,可能直接表现为价格上的差异。如果投资者对此能有基本的了解,日后面对交易中的特殊价格波动&#xf…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...