VLFeat vs2015 vc++ 64位操作系统 配置 运行(Win7,Win10)
本文整理了我引用的相關博客和自己的實際操作,以便日后自己回顧,供大家參考。
編譯VLFeat庫:
1.去官網下載壓縮包并解壓到自己的文件夾,我下載的是vlfeat-0.9.20-bin這個版本。http://www.vlfeat.org/download.html
2.打開vs2015? x64本機工具命令提示符(開始菜單下面vs2015對應的文件夾),輸入以下命令:
記下14.00.24210.0這個版本號。
3.打開vlfeat-0.9.20/make/nmake_helper.mak文件,由于沒有vs2015的版本號,需要在ELSE處添加,如圖所示:
其他vs版本對應的值如圖所示:
4.打開vlfeat-0.9.20/Makefile.mak文件,如果vs2015的安裝路徑不是默認的,需要修改成自己的路徑,如圖:
5.打開vs2015? x64本機工具命令提示符,定位到存放vlfeat的目錄,進行編譯,以下為編譯通過:
完成后,將會在/vlfeat-0.9.20/bin目錄下,新增一個win64目錄,里面會有生成的vl.dll、vl.lib和一些test執行文件。
遇到的錯誤:
1.snprintf重定義,需要修改vlfeat-0.9.20/vl/host.h文件,以下鏈接提供了解決方案,我按照理解直接加入了兩段代碼:
https://stackoverflow.com/questions/27754492/vs-2015-compiling-cocos2d-x-3-3-error-fatal-error-c1189-error-macro-definiti
鏈接的意思是很多庫和程序使用#define snprintf _snprintf,后來c99標準也定義了snprintf()函數(官方支持),如果當前編譯器支持c99,此時就會導致snprintf重定義。我加入的第一段代碼是允許vs2015以后的版本(包括vs2015)支持c99。第二段代碼是vs2015之前的版本需要定義snprintf。
或者snprintf重定義和isnan重定義也可以直接注釋掉。(行315,316,335,336)
?
2.don’t know how to make msvcr140.dll,原因是根本沒有msvcr140.dll文件,只有msvcp140.dll。
打開vlfeat-0.9.20/Makefile.mak文件,需要將Makefile.mak文件中所有出現msvcr的地方改成msvcp(注意,只改小寫的地方)
在vs2015中調用VLFeat庫并成功運行:
在vs2015中編寫項目并成功運行可以參考官方文檔http://www.vlfeat.org/vsexpress.html
以下給出我的步驟(配置64位系統操作,32位同理):
自己創建一個簡單的項目,需要修改項目屬性來包含VLFeat這個庫和一些目錄。
右擊項目名稱test,選擇屬性。接著按照以下截圖操作。
到這里可以編譯成功,但是不能運行,如圖,會提示沒有vl.dll。
官方文檔給的解決方案是:
如果你可以運行,那就成功了,但是我的程序還是提醒找不到,于是我就把vlfeat-0.9.20\bin\win64\vl.dll這個動態庫復制到我創建的項目的test/x64/Debug下就可以了。
最后,感謝各位博主提供的教程。
https://blog.csdn.net/weiwei9363/article/details/65434976
https://blog.csdn.net/u011718701/article/details/51452011
?
總結
以上是生活随笔為你收集整理的VLFeat vs2015 vc++ 64位操作系统 配置 运行(Win7,Win10)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: yum 出错,提示Segmentatio
- 下一篇: el-table列宽自适应;el-tab