Linux开发之Delphi FMXLinux(一)、概述
目录Linux开发之Delphi FMXLinux(一)、概述一、关于FMXLinux1.1、Delphi对Linux的原生内核开发支持部分:1.2、Delphi FMX对Linux的支持部分:1.3、从1个简单demos(C:\Users\Administrator\Documents\FmxLinux\Examples\ShellApi\ShellApi.dproj)看Delphi FMXLi
目录
下一篇: Linux开发之Delphi FMXLinux(二)、Delphi对Linux操作系统内核态主要的Api封装(FMUX.Api.pas)
Linux开发之Delphi FMXLinux(一)、概述
一、关于FMXLinux
FMXLinux并非Delphi自带的原生库,Delphi内核开发,三个文件,详见《Delphi开发Linux的三个操作系统内核单元之网络传输运行时刻库Linuxapi.Curl.pas》
https://blog.csdn.net/pulledup/article/details/115577863
FMXLinux是Delphi的三方库
1.1、Delphi对Linux的原生内核开发支持部分:
1.2、Delphi FMX对Linux的支持部分:
是通过Delphi的安装程序在Redist重新分发来安装FMX控件对Linux的支持的,编译并运行工程前也会用此对目标平台的Socket目录进行重新分发:
1.3、从1个简单demos(C:\Users\Administrator\Documents\FmxLinux\Examples\ShellApi\ShellApi.dproj)看Delphi FMXLinux编译、分发、运行的全过程:
Checking project dependencies...
Compiling ShellApi.dproj (Release, Linux64)
dcclinux64 command line for "ShellApi.dpr"
d:\delphi10.4update2\bin\dcclinux64.exe -$D0 -$L- -$Y- --no-config -M -Q -AGenerics.Collections=System.Generics.Collections;
Generics.Defaults=System.Generics.Defaults -DRELEASE -E.\Linux64\Release -ID:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program
Files (x86)\FmxLinux\\Source";"C:\Program Files (x86)\FmxLinux\\Lib\21.0\Release";
D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;d:\delphi10.4update2\lib\Linux64\release;
C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 -LEC:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64
-LNC:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64 -NU.\Linux64\Release -NSSystem;Xml;Data;Datasnap;Web;Soap;;(Default)
-OD:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program Files (x86)\FmxLinux\\Source";"C:\Program Files
(x86)\FmxLinux\\Lib\21.0\Release";D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;
d:\delphi10.4update2\lib\Linux64\release;C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 -RD:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program Files
(x86)\FmxLinux\\Source";"C:\Program Files (x86)\FmxLinux\\Lib\21.0\Release";
D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;d:\delphi10.4update2\lib\Linux64\release;
C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 -UD:\DelphiProjs\PulledupUI\Delphi10.4Update2_FixedDelphiPas;"C:\Program Files
(x86)\FmxLinux\\Source";"C:\Program Files (x86)\FmxLinux\\Lib\21.0\Release";
D:\DelphiProjs\PulledupUI\GYListView27D1042_20210228\DCU\FMX\XE10\Linux64\Release;d:\delphi10.4update2\lib\Linux64\release;
C:\Users\Administrator\Documents\Embarcadero\Studio\21.0\Imports;d:\delphi10.4update2\Imports;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Dcp\Linux64;d:\delphi10.4update2\include;d:\delphi10.4update2\redist\Linux64;
C:\Users\Public\Documents\Embarcadero\Studio\21.0\Bpl\Linux64;C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Lib\Linux64;
C:\Devart\UniDACRAD10.4\unidac_8.3.2_d27\Bin\Linux64 --syslibroot:C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk
--libpath:C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\gcc\x86_64-linux-gnu\7;
C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\x86_64-linux-gnu;
C:\Users\Administrator\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\lib\x86_64-linux-gnu
-NHC:\Users\Public\Documents\Embarcadero\Studio\21.0\hpp\Linux64 -NO.\Linux64\Release ShellApi.dpr
Success
Elapsed time: 00:00:02.8
Deploy
paclient command line for "Ubuntu 18.04.4 LTS"
d:\delphi10.4update2\bin\paclient.exe -u8 --Clean="ShellApi,C:\Users\Administrator\Documents\FmxLinux\Examples\ShellApi\ShellApi._@emb_.tmp" "Ubuntu
18.04.4 LTS"
paclient command line for "Ubuntu 18.04.4 LTS"
d:\delphi10.4update2\bin\paclient.exe -u8 --put="Linux64\Release\ShellApi,ShellApi\,1,ShellApi" "Ubuntu 18.04.4 LTS"
Success
Elapsed time: 00:00:01.0
linux64.redistlist(1): Line endings are LF, but RAD Studio requires CRLF. Consider converting or check your source control settings.
//::::linux64.redistlist代码(D:\Delphi10.4Update2\Redist\linux64.redistlist)行结尾符只用了换行:::::RAD结尾符需要回车换行:::::
二、关于FMXLinux的开发
2.1、首先需要安装FMXLinux(略)
https://www.FMXLinux.com
2.2、FMXLinux概览
C:\Program Files (x86)\FmxLinux
FmxLinux下均已Fmux来标识,即在Fmx中间加了1个字符u来标识是FmxLinux对Linux的支持,以区别FMX对Linux的支持:
2.3、FMXLinux重要的已公开的源码部分讲解
从上图可见,FMXLinux主要提供了:
Linux操作系统内核态主要的Api封装(FMUX.Api.pas)
对delphi提供了用户态系统级别的Linux设备支持(System.Linux.Devices.pas)
Linux操作系统内核态OpenGL的封装(Linux.OpenGL.pas)
剩余部分为对FMX的Linux支持的扩展:
Linux下的类及方法帮助单元(FMX.Helpers.Linux.pas)
Linux下的平台管理及服务单元(FMX.Platform.Linux.pas)
Linux下的上下文环境单元,与进程和线程相关(FMX.Context.Linux.pas)
Linux下的打印管理单元(FMX.Printer.Linux.pas)
Linux下的浏览器内核接口单元(FMX.WebBrowser.Linux.pas)
Linux特有的GUI画布绘制单元(FMX.Canvas.Linux.pas)
Linux下的多媒体库管理单元(FMX.Media.Linux.pas)
Linux下的剪切板单元(FMX.Clipboard.Linux.pas)
Linux下的组件管理单元(FMX.Controls.Linux.pas)
Linux下的对话框管理单元(FMX.Dialogs.Linux.pas)
Linux下的手势管理单元(FMX.Gestures.Linux.pas)
Linux下的多点触控管理单元(FMX.MultiTouch.Linux.pas)
本博客关联:
下一篇: Linux开发之Delphi FMXLinux(二)、Delphi对Linux操作系统内核态主要的Api封装(FMUX.Api.pas)
更多推荐
所有评论(0)