使用 C++ Builder 產生 Mac 版程式

 
本文是要說明如何在 Windows 上執行 Embarcadero C++ Builder (它的前身就是 Borland C++ Builder, BCB),並且產生 Mac 版的程式,讓程式可以在 Mac 上執行。
 
因為幾年前好不容易測試成功過,如今又要重做一次卻忘了流程了,所以才想到要記下來,免得日後自己又忘掉,也可以給第一次做的人參考參考。
 
手中雖然有一台公司的 MacBook Pro,不過裡面的 OS X 是 10.6,這個版本太舊了,至少要 10.8 才能開發。所以我採用虛擬主機中的 Mac OS X 來測試,好處是不用二台機器,缺點當然是效率不好,不過若不是常常需要編譯 Mac 版,應該還可以接受。
 
以前看李維大師演講時,他是在 Mac 中跑虛擬主機 Windows ,然後在 Windows 中執行開發程式,可以想像這就更慢了,因為主要的工作都在虛擬機中執行,而這個方法也是官方建議的方法之一。
 
在 Mac 中也要安裝 Xcode,這是 Mac 下的開發程式,整個原理應該是 C++ Builder 把程式先轉成 Xcode 可以編譯的資料,然後透過連結的程式,請 Xcode 把程式編譯出來,這樣就有可以在 Mac 下執行的程式了。
 
我的主要環境如下:
 
作業系統:Microsoft Windows 7 專業版
 
開發程式:Embarcadero C++ Builder Berlin Update 2 試用版 (30天) (下載處 : https://www.embarcadero.com/ )
 
虛擬程式:VMware Workstation 12 Play (v12.5.2) (下載處 : http://www.vmware.com/products/player/playerpro-evaluation.html )
 
虛擬的 Mac 系統:Mac OS X 10.10 Yosemite
 
Mac 下的開發程式:Xcode v6.4 (下載處 : https://developer.apple.com/download/more/ )
 
 
其中 Mac OS X 10.10 是使用 VMware 產生的虛擬主機,當初產生的方法請看此頁:
 
 

【主要流程】

 
A.在 Mac 上安裝 PAServer,這是要讓 Mac 可以和 Windows 溝通用的程式。
B.設定連結用的 Profile,應該是二個系統溝通時的設定檔。
C.選擇 SDK,大概是把 Mac 在編譯時需要的東西利用剛才設定的 Profile 傳到 Mac 去。
D.選擇要編譯的平台,也就是 Mac OS X,如果順利,執行時就可以在 Mac 上看到結果。
E.發佈程式。這我還沒深入研究,只知道哪裡可以找到程式並執行。
 
以上在 C++ Builder 的說明都有,我就是參考他的英文說明來操作,才完成底下的測試。
 

【實際操作】

A.在 Mac 上安裝 PAServer

 
1.取得 PAServer 程式 (Platform Assistant) : PAServer18.0.pkg
 
可以在安裝 C++ Builer 的主機上找到 C:\Program Files (x86)\Embarcadero\Studio\18.0\PAServer\PAServer18.0.pkg 
 
這裡也可以下載到
 
 
 
因為我用的是 Update 2 版的程式,所以我直接用主機安裝時提供的程式。
 
2.將 PAServer18.0.pkg 複製到 Mac 上,滑鼠左鍵點二下進行安裝。
 
Install PAServer
 
3.執行 PAServer,在 Mac 的 Finder 的 Applications 目錄中找到 PAServer-18.0,滑鼠左鍵點二下執行它。
 
PAServer
 
4.執行時會要求設立密碼,我是直接 Enter 忽略,之後也會問我個人密碼,然後會出現底下畫面。
 
至此,基本上 PAServer 就算執行成功了。
 
Runing PAServer
 

B.設定連結用的 Profile

 
1.在主功能表中選擇 Tools -> Options -> Environment Options -> Connection Profile Manager
 
2.按下 Add 新增一個 Profile,並設定一個名稱。
 
Create Profile
 
3.選擇要連結的主機,因為要連結的方法可以利用 IP,所以在 Mac 的 PAServer 先找到如何查到 IP,也就是下達 i 命令, 見下圖
 
Get IP
 
查到的 IP 是 192.168.85.128,再填入下圖的欄位中。
埠(Port)使用預設的 64211,密碼之前沒有設定,所以空著不用填。
 
Setting Profile
 
4.然後進行測試,結果成功,按下 OK 和 Finish 完成此設定。
 
Test Profile
 
5.日後只要在 Project Manager 的專案上的目地平台的 OS X 按滑鼠右鍵,選 Edit Connection,就可以直接編輯此連結的 Profile 了。
 
Edit Connection

C.選擇 SDK (此為錯誤版,懶得看的請跳到底下的正確版)

 
1.在主功能表中選擇 Tools -> Options -> Environment Options -> SDK Manager ,選擇 Add
 
不過我的出現錯誤訊息:No SDKs could be found ......
 
No SDK
 
2.我選擇 OK,但還是無法處理。SDK Version 無法選擇,我猜是沒有安裝 Xcode 的問題吧?
 
No SDK to Select
 
3.後來才發現 Mac 那邊要我安裝一個程式,我就按 OK,卻忘了截圖。
 
4.安裝好之後,在 PC 端就可以看到安裝了一個 Command Line Tools 可以選用了。
 
find command line tools
 
5.按下 OK,就開始安裝,安裝好就可以看到如下畫面了。
 
Install Command Line Tools
 
6.選擇使用 OS X 平台,開始編譯程式,卻發現很多錯誤,懷疑是一定要安裝 Xcode 才行。

C.選擇 SDK (正確版)

1.要先安裝 Xcode,一開始我在 OS X 10.10 安裝 Xcode 7.2,結果失敗,有訊息說要在 OS X 10.10.5 才能安裝 7.2 版。於是又改用 Xcode 6.4,就順利安裝成功了。

2.在主功能表中選擇 Tools -> Options -> Environment Options -> SDK Manager,選擇 Add,這次果然看到有二個可選擇的版本,就選比較新的版本進行安裝。
 
Find SDK
 
4.安裝好的畫面,其中上面的  Command Line Tools 就是之前錯誤版的安裝法安裝上去的。
 
Install SDK

D.選擇要編譯的平台

1.在 Project Manager 的專案中就可以看到現有的平台,如果要新增平台,可在 Target Platforms 按滑鼠右鍵,選擇 Add Platform,下圖是因為我只安裝 Win32 和 OS X 二個平台,所以不能再新增了。

 
Add Platform
 
2.選擇要編譯的平台,例如要編譯 OS X 版,就在上圖的 OS X 滑鼠連點二下就可以了。
 
上圖可看到 OS X - MacOSX 10.10.3 - MyOSX Profile
 
OS X 就是平台
MacOSX 10.10.3 就是 SDK
MyOSX 就是 Profile
 
3.重新編譯及執行,執行方法和在 Windows 一樣,只是會在 Mac 的機器上直接看到結果。
 
這是第一個簡單的程式,測試一下 Unicode 漢字,其中 Ext-B 的 Unicode 無法呈現,可能是我的 Mac 系統的字型不足,或是沒有選擇到正確的字型。
 
Mac Test Unicode
 
Windows 的版本則正常呈現。
 
Win Test Unicode

E.發佈程式

在主功能表可以看到 Project -> Deployment,這是和發佈有關的 Deployment Manager,但我沒有仔細去研究了。
 
在說明檔中也有提到,在執行時,其實就已經發佈在目地平台了,在 Mac 系統,在這裡可以找到發佈的程式:
 
/Users/yourname/PAServer/scratch-dir
 
若要正式發佈程式,說明檔建議還是好好利用上面提到的 Deployment Manager 來處理相關的檔案,有需要時再來研究吧。
 

Web 瀏覽器測試

因為我即將要開發的程式中,最重要的功能就是 Web 瀏覽器,所以此次測試最主要的目的,就是要測試 Web 瀏覽器是否能正確在 Windows 版和 Mac 版執行。
 
在前幾個版本的 C++ Builder,雖然宣稱有支援 Win 和 Mac,但 Web 瀏覽器卻沒有跨平台的版本,一直到了 XE8 才終於有支援了,之後直接跳至 XE10 Seattle(XE9 消失了,和 Win9 消失的理由應該差不多),目前我測試的版本是 10.1 Berlin,如果 Web 瀏覽器能正確執行,我才能使用此版的 C++ Builder 來開發程式。
 
在以上的測試都完成後,我又寫了一個很簡單的測試,有主功能表、樹狀目錄、Web 瀏覽器,就是要看看能不能順利讀取網頁。
 
這是 Mac 版的結果。
 
Mac Test Web
 
這是 Windows 版的結果。
 
Windows Test Web
 
皇天不負苦心人,花了二天的測試,終於成功了。

 

重要度:
文章分類:

發表新回應

借我放一下廣告