未分類

實戰中大型專案開發I

這次的課程總共分為六次來做訓綀到六月,由imacat依瑪貓帶著我們做完全的實戰課

雖然我尚未有上過專題課的經驗,畢竟要到大三才會有,不過聽ROCK說以往所謂的大學專題

大多都是從頭開始,然後做到學期末應付完這個project就結束了,也不會有學弟妹接手下去

和業界的生態完全不同,因此本次不但要參與接手專案開發,就算課程結束時東西還會持續

有人會去修改,算是滿正式的一種訓綀還不錯。

因為是一個中大型的多人開發專案,一開始便分成二大派別(業界和學生)共計7組的隊伍

一組大約有4至5人不等,並選擇一種程式語言做開發,接下來的訓綀要分工並且上台報告

而且還是下一次就要開始,我們只好硬拖著其它人下水全部都用Python(大笑)

話說回來還有Denny大大(SITCON總召)在我們這就沒什麼好怕的了(逃)

“你們現在不是應該要待在立法院嗎?” <-第一句就來這樣XD

“誒 誒 誒,十點上課不要再看總統的廢話了 這不是昨天..不 前天就能預測他要說什麼了嗎?”

“我本來也想到那教課,不過畢竟性質不太一樣…”

“g0v不是真的臨時政府啦…那只是一群駭客XD” <-結束的時候有人問的

果然最近的家常閒話都圍繞在這(茶)

再分組完之後首先編譯的第一個開放源碼專案就是pidgin…為什麼會選它馬上就知道

為什麼要編譯這個專案?阿用直接編譯好的專案不就得了,這樣還可以直接安裝多方便

這些的大前提之下都是你擁有管員權限XD 再加上並不是所有的專案都有提供已編譯的程式

此外如果想要獲得最新更新完的程式,直接用拿到的Source Code來做最快!

以pidgin解壓縮完可以獲得如下

當然這些開源的專案有個很大的特點在於約70%左右的專案都是用C來做Compile

要製做這些專案所用上的工具就包含了Automake & Autoconf 等等

不過第一堂課也只大約略提,也許後頭會有機會碰到也說不定…其實第一堂已經夠充實了XD

接下來的實戰全在Ubuntu…Why? OSX不好嗎? 當然好阿…現場還一大堆Mac開頭的

可是當大家遇到編譯上各式各樣的Bug…還是乖乖開個虛擬機來安裝比較實在XD

不是沒有解Bug的精神,照學長的說法…請不要這樣搞自已XDDDD

檢查出現的各式各樣的問題,OSX就算裝了環境一樣吐給你看

我們可以先用 ./configure 去檢查所需要的環境,然後就是看似永無止境的問題

這時只好不斷的問問Google大神或到Stackoverflow請求幫助XD

真的找不到問題所在還得要看看 config.log 確認出了什麼事

仔細看還會發現有的會乾脆直接 #include abc.h 一個小程式看能不能work

這樣就可以直接知道該header是不是真的存在了…

再經歷一個上午在純白環境裝了一大堆所需要的library之後就會得到這樣

多出了一些東西像是config.h Makefile 等等

總而言之 config.h 是由config.h.in所產生出來的 兩個檔案的內容是差不多的

只不過config.h.in是用來偵測目前平台的環境變數,有的話就做保留,而沒有的則註解掉

藉由這樣的方式來讓程式知道是何種平台及該環境

至於Makefile倒是有不少功能,再執行make做編譯的時候會發現一堆CC開頭

那全都用gcc編譯不就好了? 這麼做除了累死要打一堆函數、變數等,也無法掌握該編譯哪些東西

Makefile.am 由前面說的 Automake 所產生的,Makefile.am -> Makefile.in -> Makefile

用vim來看會發現有個Extra_Dist 還包含不少東西….

這些就是除了標準Library所要包含的額要東西啦(lib都在該目錄下的其它資料夾)

成功出現Makefile除了可以用make編譯之外 裡頭還有不少target可以讓我們使用

make check

make test

這些都可以在最後的make install前做的小測試,偷懶的就是跳過直接裝(大誤)

當然還有一些像是清除或包裝等指令等等都可以在裡頭查到

make clean

make dist

總算是真的順利裝好了Orz 可以用了囧~~~~It works!!

被pidgin搞了一個上午之後,下午其餘的綀習像是apache或PHP就不堪一擊了XD

“同學告訴我說PHP直接./configure就過了 沒挑戰性讓我有點受挫” XDDDDDDDD

下次的課程要分組報告…該期待還是該擔憂呢?XD

分享到