# Developing a Program: The Particle Fire Simulation
# [Lecture] Particle Fire Explosion
# [Lecture] Using C++ Libraries
如果要將撰寫好的代碼在不同的專案中使用,可以將其打包成 函數庫(Library)。在一個 C++ 專案透過編譯器進行編譯時,會經過以下的步驟:
- 預處理器(Pre-Processor):透過預處理器引入其他標頭檔
- 彙編(Compilation):在這一階段會產生許多以
*.o作為副檔名的物件檔案 - 連接(Link):最後將這些物件檔案連接產生可執行檔案,在 Windows 作業系統下通常副檔名為
*.exe,而在 Unix 作業系統下則可能不含副檔名
值得一提的是在編譯的過程中,還可以連接靜態函數庫或動態函數庫:
- 靜態函數庫(Static Library) 會把整個函數庫包進執行檔中,藉此可以確保在不同機器環境下執行,也不會因為少了這個函式庫導致無法執行檔案,但其缺點是檔案會比較大。靜態函數庫在 Windows 作業系統下名稱通常如
XYZ.lib,而在 Unix 作業系統下則如libXYZ.a。 - 動態函式庫(Dynamic Library) 的好處則是可以讓多個執行檔案,同時連結使用來減少佔據的空間,但可能因為函數庫版本不同而導致連接執行錯誤。動態函數庫在 Windows 作業系統下名稱通常如
XYZ.dll,而在 Unix 作業系統下則如libXYZ.so。
# [Lecture] Aquiring Simple Direct Media Layer
在這個專案中我們必須使用到 SDL 這套開放式原始碼的跨平台多媒體開發函式庫。關於不同平台的安裝方式詳見:
- Windows 可以參考:
- MacOS 可以參考 Medium | Set up SDL2 on your Mac without Xcode