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的价格差异
西方资本主义世界崇尚自由经济,而我国实行社会主义市场经济,因此二者在金融系统上存在不少差异,反映在贵金属市场中,可能直接表现为价格上的差异。如果投资者对此能有基本的了解,日后面对交易中的特殊价格波动…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
