[047] JUCE Diary #6: 地雷
JUCE v4 版之後要求建立 ROLI 帳號才能下載,過了那關之後會取得一個壓縮檔,裡頭放了 JUCE 的原始碼跟一支名為 Projucer 的工具。
建立 JUCE 專案的工作由 Projucer(v3 以前叫做 Introjucer) 全權負責,也是從 JUCE v4 之後,Projucer 會要求輸入 ROLI 帳密:
底下示範如何建立一個 GUI 應用程式(Visual Studio 2015):
上圖同時也示範了如何移除不需要的 JUCE Module。雖然 Audio Processing 是 JUCE 強項,但我的專案用不到,於是將其刪除。
地雷在這裡
置放 JUCE 原始碼的位置很重要!
上述步驟完成後,用 Visual Studio 2015 開啟 Build\VisualStudio2015\GUIApp.sln
編譯並執行,會看到單一視窗應用程式。看似運作良好,但其實有未爆彈。
在我的電腦上,Projucer 位於 I: 磁碟,而新增的專案 GUIApp
則位於 H: 磁碟,把 JUCE 「解剖」來看會發現,其位於 JuceLibraryCode
目錄底下的 juce_core.h
實際上引用了 I: 底下的 juce_core.h
,而且是絕對路徑:
這顆未爆彈會在你把專案放到版控,然後到另一個環境簽出,準備編譯時爆炸。如果是跟別人合作的案子,你的同事會靠北說專案無法編譯,可是在你的電腦上明明就沒問題。然後你們就會吵很久,搞不好因此絕交切八段...
解法是:
- 解開後的 JUCE 原始碼,連同 Projucer、範例程式碼(~ 76MB)全部放到版控裡。
- 放 JUCE 原始碼的最佳位置是
.git/3rdparty/juce
- 把 JUCE 放到控制裡,然後才開始做其他的事:新增專案之類的
正常的路徑應該長這樣:
這樣還沒完。Projucer 專案檔副檔名為 .jucer,可以在專案根目錄找到,裡頭也不能有絕對路徑,像底下這樣是不對的:
不客氣!You are welcome!