標籤:檔案 io re 時間 c window
在visual studio 2013中編譯kaldi的主要困難的地方在於正確編譯kaldi的依賴庫,主要是:openfst,ATLAS, pthreadVC2,其中又屬ATLAS最難編譯,因此,為求整個編譯邏輯清晰簡潔,在此將忽略kaldi所有依賴庫的編譯,如果有時間,我會直接提供其所依賴的庫。
編譯環境:
- 作業系統:windows8 (推薦)
- 編譯工具:visual studio2013
- 其他:要安裝完整的CygWin環境
編譯步驟:
- 建立解決方案:開啟visual studio 2013,建立一個Win32項目,不妨將解決方案名稱名為kalid_vs13。可以先簡單寫個HelloWorld程式,用來測試專案是否成功建立
- 建立項目:在解決方案kalid_vs13中用DLL項目模板添加一個新的項目kalid-lib
- 添加源檔案:把kaldi-trunk/src/下的的*.cc檔案加入項目kalid-lib中,注意這裡不要把一些*bin目錄裡的測試檔案以及其他的一些檔案名稱中含有關鍵字test的*.cc檔案加入kalid-lib中
- 配置kalid-lib的相關屬性,包括:1)配置標頭檔的引用目錄,2)前置處理器定義的宏(HAVE_ATLAS),3)依賴庫的引用(openfst.lib,atlas.lib,pthreadVC2.lib)
- 其他配置:因為nnet1和nnet2目錄下有相同的檔案名稱:nnet-nnet.cc和nnet-componet.cc,所以需要配置他們各自的“輸出檔案”中的”對象檔案名稱“,比如可以將nnet1中的nnet-nnet.cc的對象檔案名稱設為$(IntDir)nnet1\,而將nnet2中的nnet-nnet.cc的對象檔案名稱設為$(IntDir)nnet2\,其他重複檔案類推
備忘:
1. 要想順利編譯,還需要修改一些kaldi源檔案,有時間我會向官方提交一些patch,這樣大家就能順利編譯kaldi了
2.以上的編譯環境是我自己的,其他的環境是否能行我就不確定了
3. 這篇隨筆主要敘述kaldi的整體編譯思路,暫時不會關注編譯細節!