最近由於需要使用caffe cpu版本,因此不得不自己編譯,哎!各種大坑。不過最終的結果都是好的!下面有四種種方法又簡到難依次介紹!
第一種:最簡單方式。
第二種:中下等難度
之所以說的中等難度,因為需要的第三方庫已經提供給我們,我們不需要自己編譯。這種方法也非常簡單,而且有教程呦,根據教程一步一步走就可以了。不過有的地方需要注意,教程說把第三方庫放到caffe的根目錄下,我一直沒明白這個根目錄指的是什麼,因為這一步和後面新增靜態庫的路徑有關。最後的解決方法是,第三方庫可以放到任意地方,靜態庫路徑用絕對路徑就可以了。這種方法也能成功。
這種方法的優缺點:
優點是:整個工程相對來說小了不少,因為只有cpu了。
缺點:這個比較重要,我就因為這個最終不得不放棄這種方法。
原作者提供的caffe原始碼比較老,很多新層沒有新增進來,因此沒辦法使用新層,這個真的比較難受。當然這個也有解決方法,下面再說。另外乙個缺點就是他使用的靜態庫比較新,可能當你想把caffe嵌入到你的程式中有問題,這個沒有驗證過,只是個人觀點。不過總體來說還是非常不錯了,整個過程很簡單,而且還有小小的測試程式,很有成就感。
教程連線:稍後貼出來
第三種:中上等難度
第四種:最難的方法
從頭開始編譯,乙個庫乙個庫開始,這個真是不容易。不過幸好教程裡寫的比較明了。不過這種方法需要對cmake很熟悉。我稀里糊塗整了半天也沒弄好,有時間再弄弄。這種方法建議有時間的同學多玩玩,漲不少知識。
祝各位看官好運了!
編譯external icu4c data方法
在做下面操作之前必須source build envsetup.shchoosecombo 具體步驟 1 新增或者修改external icu4c data目錄下的資源 2 建立乙個臨時目錄 croot rm external icu4c stubdata icudt48l all.dat rm e...
ATL編譯時只能用debug編譯的解決方法
用其他的方式編譯都出現下面的錯誤 libcmt.lib fpinit.obj error lnk2005 fltused already defined in stdafx.obj libcmt.lib fpinit.obj warning lnk4006 fltused already defin...
ATL編譯時只能用debug編譯的解決方法
用其他的方式編譯都出現下面的錯誤 libcmt.lib fpinit.obj error lnk2005 fltused already defined in stdafx.obj libcmt.lib fpinit.obj warning lnk4006 fltused already defin...