用 Delphi 編譯 Linux 程序的系統環境配置,採用 Win10 Linux 子系統

最新版的 Delphi 10.3.3 可以編譯 Linux 目標程序。比如我用 WebBroker 寫的 WEB server 程序,可以運行到 Linux 服務器底下了。

編譯環境搭建配置,網上的教程通常是在 Windows 電腦上安裝 Delphi,然後在虛擬機裏面安裝 Linux Server,然後在 Linux Server 裏面安裝 Delphi 帶來的 PAServer 程序,然後讓 Delphi 和 PAServer 連接,完成編譯過程。比如這篇文章就講得比較詳細:

《Configure Delphi and RedHat or Ubuntu for Linux development.》

備註:Delphi 在編譯 Android 程序的時候,不需要連接安卓系統,可以直接編譯出安卓的目標文件。然後把這個目標文件拷貝到安卓手機上就可以運行。但是,編譯 Linux 目標的時候,它直接彈出一個對話框要 PAServer 的地址。也就是說沒有連接 PAServer 是無法編譯出 Linux 程序的。

我的想法是,在 Win10 自己帶的 Linux 子系統裏面,運行 PAServer 這樣就不需要專門爲 Linux 安裝一個虛擬機了。虛擬機太佔硬盤空間。

這一次,我的環境配置是:

1. Win10 Linux 子系統(Ubuntu)裏面,運行 PAServer;

2. VirtualBox 虛擬機裏面安裝 Windows,在裏面安裝 Delphi 10.3.3. 用來編譯 Linux 程序。

步驟:

1. 首先在 Win10 電腦裏面,啓用 Linux 子系統,安裝 Ubuntu。這一步,網上很多教程。我前面也有博客文章介紹。

2. 把 Delphi 10.3.3. 安裝盤裏面帶的 LinuxPAServer20.0.tar.gz 這個文件,用 7Zip 程序打開解壓,它是一個包含幾個文件的文件夾,文件夾的名字是 PAServer-20.0,我把它拷貝到 windows 的 D:\linux\ 底下,因此目錄結構就是 D:\linux\PAServer-20.0\

3. 運行 Windows 的 PowerShell,在 PowerShell 窗口裏面輸入命令:D: 切換到 D 盤,輸入命令 cd D:\linux\PAServer-20.0 進入 PASserver 目錄。

4. 輸入命令 bash 啓動 Linux 子系統。

5. 在 Linux 子系統環境裏面,看看當前路徑是不是 /mnt/d/linux/PAServer-20.0 如果不是,輸入 linux 的命令切換當前目錄。

6. 在該目錄底下,輸入命令 ./paserver 運行 PAServer 程序。注意 linux 的程序的運行是輸入點號和斜槓再加上程序文件名。

7. PAServer 運行起來,要求你輸入密碼。不輸入也可以。我輸入密碼 123456 回車,PAServer 顯示它工作在 64211 端口,然後停在 【>】符號的提示符,等待輸入命令。這時候我們可以不用輸入任何命令,可以使用 Delphi 來編譯 Linux 程序了。

8. 回到我的虛擬機裏面的 Delphi,New 一個 WebBroker 程序,選擇 Stand Alone 模式的 Linux 目標,Delphi 自動創建代碼框架。這個代碼框架不用修改就可以直接編譯。點 Delphi 的運行程序的綠色三角按鈕,彈出一個對話框,要求建一個 profile,包括名字等。名字隨便寫,主要是填寫 PAServer 的電腦的 IP 地址。這裏注意打開 Windows 的防火牆,開放 64211 端口。

9. 編譯完成。在 Linux 子系統的 /home/pcplayer/PAServer/scratch-dir 目錄下,可以看到 Delphi 編譯發佈到  Linux 系統的目標程序文件 test。

10. 在 Linux 底下,運行這個 test,也就是輸入命令 ./test,它啓動後有提示命令,根據提示,輸入 start 命令,它的 Web Server 端口打開監聽開始工作。

11. 在 Windows 系統裏面打開瀏覽器,地址欄輸入 127.0.0.1:8080,看到 WebBroker 的默認網頁了。

--------------------------

備註:

1. 在 Delphi 裏面,一開始直接用菜單的 Build 菜單,不能編譯,提示需要連接 PAServer。創建了一個連接 PAServer 的 Porfile 然後第一次編譯發佈以後,下次再改了程序,無需連接 PAServer 就可以直接 Build。當然 Build 出來的目標文件默認在 Delphi 的工程文件夾底下的 D:\Test\WebServerForLinux\Linux64\Debug 這樣的文件夾底下。

2. 編譯到工程項目的 Debug 底下的目標文件,直接拷貝到 Win10 系統的目錄底下,比如我這裏是 D:\linux\target 目錄底下,然後進入 Linux 子系統,在 Linux 子系統裏面輸入命令切換當前路徑,切換進去後,直接 ./test 可以運行這個目標程序。

這個流程跑通了,下次我可以試試在真正的雲虛擬機服務器裏面運行 PAServer 來編譯發佈 Linux 程序了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章