heavenchou - 四, 2016/11/24 - 01:55
本文是要說明如何在 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
這裡也可以下載到
RAD Studio Berlin: http://altd.embarcadero.com/releases/studio/18.0/PAServer/PAServer18.0.pkg
RAD Studio Berlin Update 1: http://altd.embarcadero.com/releases/studio/18.0/PAServer/Update1/PAServer18.0.pkg
因為我用的是 Update 2 版的程式,所以我直接用主機安裝時提供的程式。
2.將 PAServer18.0.pkg 複製到 Mac 上,滑鼠左鍵點二下進行安裝。
3.執行 PAServer,在 Mac 的 Finder 的 Applications 目錄中找到 PAServer-18.0,滑鼠左鍵點二下執行它。
4.執行時會要求設立密碼,我是直接 Enter 忽略,之後也會問我個人密碼,然後會出現底下畫面。
至此,基本上 PAServer 就算執行成功了。
B.設定連結用的 Profile
1.在主功能表中選擇 Tools -> Options -> Environment Options -> Connection Profile Manager
2.按下 Add 新增一個 Profile,並設定一個名稱。
3.選擇要連結的主機,因為要連結的方法可以利用 IP,所以在 Mac 的 PAServer 先找到如何查到 IP,也就是下達 i 命令, 見下圖
查到的 IP 是 192.168.85.128,再填入下圖的欄位中。
埠(Port)使用預設的 64211,密碼之前沒有設定,所以空著不用填。
4.然後進行測試,結果成功,按下 OK 和 Finish 完成此設定。
5.日後只要在 Project Manager 的專案上的目地平台的 OS X 按滑鼠右鍵,選 Edit Connection,就可以直接編輯此連結的 Profile 了。
C.選擇 SDK (此為錯誤版,懶得看的請跳到底下的正確版)
1.在主功能表中選擇 Tools -> Options -> Environment Options -> SDK Manager ,選擇 Add
不過我的出現錯誤訊息:No SDKs could be found ......
2.我選擇 OK,但還是無法處理。SDK Version 無法選擇,我猜是沒有安裝 Xcode 的問題吧?
3.後來才發現 Mac 那邊要我安裝一個程式,我就按 OK,卻忘了截圖。
4.安裝好之後,在 PC 端就可以看到安裝了一個 Command Line Tools 可以選用了。
5.按下 OK,就開始安裝,安裝好就可以看到如下畫面了。
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,這次果然看到有二個可選擇的版本,就選比較新的版本進行安裝。
4.安裝好的畫面,其中上面的 Command Line Tools 就是之前錯誤版的安裝法安裝上去的。
D.選擇要編譯的平台
1.在 Project Manager 的專案中就可以看到現有的平台,如果要新增平台,可在 Target Platforms 按滑鼠右鍵,選擇 Add Platform,下圖是因為我只安裝 Win32 和 OS X 二個平台,所以不能再新增了。
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 系統的字型不足,或是沒有選擇到正確的字型。
Windows 的版本則正常呈現。
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 版的結果。
這是 Windows 版的結果。
皇天不負苦心人,花了二天的測試,終於成功了。
重要度:
文章分類:
- 瀏覽次數:16815
發表新回應