跨平臺(tái)編譯的注意事項(xiàng)
盡管可以使用Windows構(gòu)建從機(jī),有些時(shí)候用Linux來構(gòu)建Windows軟件要來得更容易些。諸如GCC那樣的C編譯器可以通過配置使用MinGW包來進(jìn)行跨平臺(tái)編譯。
是否這樣做更容易取決于要構(gòu)建的軟件。
一個(gè)大系統(tǒng)通常由許多不同的部分組成,一些部分可能包含了不同平臺(tái)的本地代碼。
這兒有幾個(gè)例子:
。本地的android組件。
。本地為了性能而用C語言編寫的服務(wù)器組件。
。本地為了性能而用C或C++語言編寫的客戶端組件。
本地代碼的多少有些取決于你所在的企業(yè)的性質(zhì)。電信產(chǎn)品一般有許多的本地代碼,例如視頻編解碼器和硬件接口代碼。銀行系統(tǒng)可能有用本地代碼編寫的高速消息系統(tǒng)。
這樣做的一方面是件很重要的事:能夠在構(gòu)建服務(wù)器上便捷地構(gòu)建所有使用中的代碼。否則,就會(huì)有一種不良傾向,那就是某些代碼只能在幾臺(tái)吃灰的機(jī)器上構(gòu)建。這是我們需要避免的風(fēng)險(xiǎn)。
企業(yè)里的系統(tǒng)需要的究竟是什么,只有你自己才知道。
主機(jī)上的軟件
視構(gòu)建的復(fù)雜性而定,你可能需要在構(gòu)建服務(wù)器上安裝許多不同類型的構(gòu)建工具。記住Jenkins主要是用來觸發(fā)構(gòu)建的,它們并不自己構(gòu)建。這個(gè)任務(wù)被委托給了例如Maven或Make這樣的構(gòu)建系統(tǒng)。
以我的經(jīng)驗(yàn)來看,有一個(gè)基于Linux操作系統(tǒng)的主機(jī)是最方便的。大多數(shù)構(gòu)建系統(tǒng)都可以在發(fā)行版庫(kù)里找到,直接從那里安裝是非常簡(jiǎn)便的。
部署服務(wù)器上的應(yīng)用服務(wù)器會(huì)持續(xù)更新,為了讓構(gòu)建服務(wù)器也總是最新,你可以直接使用同一臺(tái)部署服務(wù)器來做構(gòu)建。