WIN7 VS2015 編譯 阿里MNN框架

2022-08-31 06:21:13 字數 2359 閱讀 7221

[2019-12-31]

今天看到更新了0.2.16,嘗試了下,順暢多了, mnnconvert.exe 也能順利執行。

更簡單的流程:

2、vs2015x64命令符下,轉mnn-0.2.1.6路徑

3、powershell -executionpolicy bypass ./schema/generate.ps1

4、

mkdir vs15x64 &&cd vs15x64 

cmake -g "

visual studio 14 2015 win64

" -dcmake_build_type=release -dmnn_build_converter=on -dmnn_build_shared_libs=off ..

5、用vs2015開啟.sln下編譯

bug(很容易修改)

- vs2015支援不夠,需要修改一些型別轉換

- mnnconvert.exe 缺少必要庫的連線

-mnntrain改靜態庫

看到train模組,希望mnn走得遠些

看到阿里開發的mnn (v 0.2.1.5),來嚐嚐鮮,結果斷續折騰了2天,以此記之。

非常感謝:

裡面詳細介紹了一些配置操作。

1、設定

2、將powershell ./schema/generate.ps1換成python ./schema/generate.py

如果要編譯x64,將

os.system('cmake -dcmake_build_type=release ..')
修改成

os.system('

cmake -g "visual studio 14 2015 win64" -dcmake_build_type=release ..

')

這個步驟也可以直接去

下flatc.exe, 在..\mnn-master\3rd_party\flatbuffers\tmp\flatc.exe

3、cmake x64 only mnn.lib/mnn.dll

mkdir vs15x64 && cd vs15x64 

cmake -g "visual studio 14 2015 win64" -dcmake_build_type=release ..

cd..

cmake --build vs15x64 --config release

正常會有

error c2280: 'std::unique_ptr> &std::unique_ptr<_ty>>::operator =(const std::unique_ptr<_ty>> &)': attempting to reference a deleted function

解法:

private:

std::map> mbackends;

std::vector> mpipelines;

std::vector>> mtensors;

std::mapminputs;

std::mapmoutputs;

bool mneedresize = false;

bool mvalid = true;

backend* mfirstbackend = nullptr;

session(const session&) = delete;

session(const session&&) = delete;

session& operator=(const session&) = delete;

session& operator=(const session&&) = delete;

這樣基本就可以獲取mnn.lib 與mnn.dll了。

4、編譯conver tool  【這個折騰我最久,好像爆粗口】

參考 不要在tool\s\converter在使用cmake, 在mnn-master下cmake, 

cmake -g "

visual studio 14 2015 win64

" -dcmake_build_type=release -dmnn_build_converter=on -dmnn_build_shared_libs=off ..

q1、配置 protobuf

win7 下,新增環境變數 protoc.exe 所在的路徑,然後cmd下執行protoc.exe 

這樣基本就可以編譯過了

**** 生成的 mnnconvert.exe 無法執行  *** 

win7 vs2015 編譯SiftGPU動態庫

siftgpu使用的是wuchangchang 版,穩定,精度高,匹配出的特徵點多。注 如果不確定哪些環境需要配置,可以檢視工程右鍵 屬性 輸入 附加依賴項,檢視工程自帶的配置,即可推測出需要哪些庫來支撐。如果還不確定怎麼做,也可以檢視siftgpu目錄下的readme.txt和opengl and...

vs2010 win7 win8 編譯時報許可權錯誤

1 c program files msbuild microsoft.cpp v4.0 microsoft.cppcommon.targets 732,5 warning msb3075 命令 regsvr32 s d project cleandir debug cleandir.dll 已退出...

Win7 VS2010 mysql 原始碼編譯與除錯

最近由於在實習,工作重點在於一些資料庫的開發,為了更好的理解資料庫的實現機制,目前萌生了要研究一下mysql資料庫原始碼的想法。那麼好吧,說幹就幹,首先我們需要實現對原始碼的編譯,這裡我們選擇win7 vs2010來實現,但是試了很多次都失敗了。這是我多次配置環境時遇到的問題,各種部落格文章總是不太...