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 详细设置。

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

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

相关文章

【前端】HTML标签汇总

目录 展示用户信息的标签 1.文本标签 span 2.标题标签 h1~h6 3.竖着布局的标签 div 4.段落标签 p 5.超链接标签 a 5.1跳转至网上的资源 5.2锚点 6.列表标签 6.1有序列表 ol 6.2无序列表 ul 7.图片标签 img 7.1相对路径 7.1.1兄弟关系 7.1.2叔侄关系 7.1.3表兄弟…

海外云手机在出海业务中的优势有哪些?

随着互联网技术的快速发展,海外云手机已在出海电商、海外媒体推广和游戏行业都拥有广泛的应用。对于国内的出海电商企业来说,短视频引流和社交平台推广是带来有效流量的重要手段。借助云手机,企业能够更高效地在新兴社交平台上推广产品和品牌…

电脑提示xinput1_3.dll丢失怎么办?游戏DLL修复方法详解

xinput1_3.dll 是一个动态链接库(DLL)文件,它在Windows操作系统中扮演着重要的角色,特别是在处理游戏控制器和其他输入设备的交互方面。这个文件是Microsoft DirectX软件包的一部分,DirectX是微软公司开发的一个多媒体…

Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了

这一篇让我想起来学习 Spring 的时&#xff0c;被 XML 支配的恐惧。明明是写Java&#xff0c;为啥要搞个XML呢&#xff1f;大佬们永远不知道&#xff0c;我认为最难的是 XML 头&#xff0c;但凡 Spring 用 JSON来做配置文件&#xff0c;Java 界都有可能再诞生一个扛把子。 <…

讲讲关于SNMP与智能PDU插座

什么是SNMP 简单网络管理协议 (SNMP) 是一种应用层协议&#xff0c;主要用于网络管理中的设备监控和控制。通过 SNMP&#xff0c;网络管理员可以从管理站远程访问网络中的设备&#xff0c;获取设备的状态信息、配置参数&#xff0c;甚至控制设备的行为。SNMP 被广泛应用于 TCP/…

丹摩征文活动 | Kolors入门:从安装到全面活用的对比指南

文章目录 1 图像生成模型 Kolors2 部署流程3 部署服务3.1 安装 Anaconda3.2 Kolors 库下载3.3 创建虚拟环境 4 生成图片 1 图像生成模型 Kolors Kolors是由快手团队开发的大规模文本到图像生成模型&#xff0c;以其独特的潜在扩散技术而闻名。 Kolors通过在数十亿对文本和图像…

【go从零单排】通道select、通道timeout、Non-Blocking Channel Operations非阻塞通道操作

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 select 语句是 Go 的一种控制结构&#xff0c;用于等待多个通道操作。它类似于 s…

信息安全工程师(83)Windows操作系统安全分析与防护

一、Windows操作系统安全分析 系统漏洞&#xff1a; Windows操作系统由于其复杂性和广泛使用&#xff0c;可能存在一些已知或未知的漏洞。这些漏洞可能会被黑客利用&#xff0c;进行恶意攻击。微软会定期发布系统更新和补丁&#xff0c;以修复这些漏洞&#xff0c;提高系统的安…

计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议

文章目录 一、TCP/IP五层模型&#xff08;重要&#xff09;二、应用层常见的协议三、TCP与UDP3.1 TCP、UDP的区别&#xff08;重要&#xff09;3.2 运行于TCP、UDP上的协议3.3 TCP的三次握手、四次挥手3.3.1 TCP的三次握手3.3.2 TCP的四次挥手3.3.3 随机生成序列号的原因 四、T…

BFD8122防爆轻便移动工作灯

BFD8122防爆轻便移动工作灯 适用范围&#xff1a; 适用于炼油、化工、油田等易燃易爆场所小范围施工、检修、抢险应急照明。 结构特性 高亮度&#xff0c;灯具光通量&#xff1e;4000lm&#xff0c;6米中心照度&#xff08;聚光&#xff09;&#xff1e;1000lx&#xff0c;…

天地图入门|标注|移动飞行|缩放,商用地图替换

“天地图”是国家测绘地理信息局建设的地理信息综合服务网站。集成了来自国家、省、市&#xff08;县&#xff09;各级测绘地理信息部门&#xff0c;以及相关政府部门、企事业单位 、社会团体、公众的地理信息公共服务资源&#xff0c;如果做的项目是政府部门、企事业单位尽量选…

分布式----Ceph部署(上)

目录 一、存储基础 1.1 单机存储设备 1.2 单机存储的问题 1.3 商业存储解决方案 1.4 分布式存储&#xff08;软件定义的存储 SDS&#xff09; 1.5 分布式存储的类型 二、Ceph 简介 三、Ceph 优势 四、Ceph 架构 五、Ceph 核心组件 #Pool中数据保存方式支持两种类型&…

linux详解,基本网络枚举

基本网络枚举 一、基本网络工具 ifconfig ifconfig是一个用于配置和显示网络接口信息的命令行工具。它可以显示网络接口的P地址、子网掩码、MC地址等信息&#xff0c;还可以用于启动、停止或配置网络接口。 ip ip也是用于查看和管理网络接口的命令。 它提供了比ifconfig更…

组件间通信(组件间传递数据)

组件间通信(组件间传递数据) 在 Vue.js 中&#xff0c;组件间通信是开发者需要经常处理的任务&#xff0c;特别是在构建具有多层次组件的复杂应用时。根据组件之间的关系和数据流的复杂程度&#xff0c;可以采用不同的通信方式。以下是常用的几种组件间通信方式&#xff1a; …

深度学习-图像评分实验(TensorFlow框架运用、读取处理图片、模型建构)

目录 0、实验准备 ①实验环境 ②需要下载的安装包 ③注意事项&#xff08;很关键&#xff0c;否则后面内容看不懂&#xff09; ④容易出现的问题 1、查看数据并读取数据。 2、PIL库里的Image包进行读取&#xff08;.resize更改图片尺寸&#xff0c;并将原始数据归一化处…

全球碳循环数据集(2000-2023)包括总初级生产力、生态系统净碳交换和生态系统呼吸变量

全球碳循环数据集&#xff08;2000-2023&#xff09; 数据介绍 PFTs_XGB FLUX 是一个基于 XGBOOST 机器学习模型的全球碳循环数据集。该数据集通过对全球植被功能类型&#xff08;PFTs&#xff09;的分类&#xff0c;结合了 FLUXNET、AmeriFlux 和 ICOS 通量站点的现场观测数据…

前端代码分析题(选择题、分析题)——this指向、原型链分析

this指向 普通函数&#xff1a;this 的指向由调用方式决定&#xff0c;可以是全局对象、调用该函数的对象&#xff0c;或者显式指定的对象。箭头函数&#xff1a;this 的指向在定义时确定&#xff0c;始终继承自外层函数作用域的 this&#xff0c;不会被调用方式影响。 var obj…

【SpringBoot】18 上传文件到数据库(Thymeleaf + MySQL)

Git仓库 https://gitee.com/Lin_DH/system 介绍 使用 Thymeleaf 写的页面&#xff0c;将&#xff08;txt、jpg、png&#xff09;格式文件上传到 MySQL 数据库中。 依赖 pom.xml <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j --><depende…

手动搭建 Ghost 博客

操作场景 Ghost 是使用 Node.js 语言编写的开源博客平台&#xff0c;您可使用 Ghost 快速搭建博客&#xff0c;简化在线出版过程。本文档介绍如何在腾讯云云服务器&#xff08;CVM&#xff09;上手动搭建 Ghost 个人网站。 进行 Ghost 网站搭建&#xff0c;您需要熟悉 Linux …

类型转换指令及方法调用与返回指令

我的后端学习大纲 JVM学习大纲 4.类型转换指令&#xff1a; 类型转换指令说明 ①类型转换指令可以将两种不同的数值类型进行相互转换。 这些转换操作一般用于实现用户代码中的显式类型转换操作&#xff0c;或者用来处理字节码指令集中数据类型相关指令无法与数据类型一一对应的…