概述
这是我自己根据网络各种资源博客指导,自己实践过的。
编译过程参考:http://www.vlfeat.org/matconvnet/install/#compiling
Compiling for CPU
版本:windows10,matlab2018a,VS 2017 community
问题:matlab运行>> vl_compilenn出现 cl.exe not found in PATH
解决方案:找到 cl.exe 手动添加环境变量,因为vs在大概15以后就不和原来存放的文件路径一样了,所以找起来废了好大的劲,大概就是慢慢找吧,我不是把vs装到c盘的,所以不能像很多博客那样在c盘的 C:Program Files (x86)中找,而是在我的安装的地方找到的,D:MySoftwarecom_vs_2017VCToolsMSVC14.11.25503binHostx64x64
D:MySoftwarecom_vs_2017就是我安装vs2017的路径。。。接下来就是配置环境变量了,这个就不说了,简单添加就好。
添加完了,matlab记得重启一下。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
版本:Ubuntu16.04,matlab2017b
问题:matlab运行>> vl_compilenn说是gcc的版本太高,支持4.9.×
解决方案:大家都知道吧,16.04自带的gnu好像是5.4的,所以gcc、g++都是5.4的,只要把gcc、g++的版本降低就行了,
在Ubuntu 16.04上安装老版gcc十分简单,命令行解决。
第一步:
sudo apt-get install gcc-4.9
输入密码,同意安装,接下来就自动下载安装4.9版本了。
第二步:设置默认的gcc版本
gcc --version
(可选)查看当前版本,不出意外的话会返回Ubuntu 16.04自带的5.4.0这个版本号,现在使用gcc命令编译时还是会用新版本。
ls /usr/bin/gcc*
(可选)查看已有的gcc版本,确认一下刚才4.9有没有装成功。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 100
将某个版本加入gcc候选中,最后的数字是优先级,我自己是直接设为100,没任何问题。
接着输入:
sudo update-alternatives --config gcc
如果用过此方法配置过多个gcc版本,会看到如下选项:(注:复制于参考文献【1】,这里只是做个说明示范,实际装4.9时不会如下显示)
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-4.4 50 自动模式
1 /usr/bin/gcc-4.4 50 手动模式
2 /usr/bin/gcc-4.5 40 手动模式
3 /usr/bin/gcc-4.6 30 手动模式
大多数情况是没有这么配置过,所以不会给选项,命令行会返回“仅有一个可用的gcc版本”(大意)。此时在运行gcc --version查看版本,发现4.9已经为默认的gcc版本。
然后再按同样方法装上g++(把对应位置的gcc改为g++就好,其他版本也就是改下对应版本号就行),如果只装gcc的话,用cmake配置出来的项目遇到c++代码还是会用之前版本的gcc。
OK。
Compiling the GPU support
一般跟着官网的指导来就行了,如果遇到matlab和cuda的版本的问题,Ubuntu的方法如下:注意的是,cuda的安装地点可能会有所不同,我是在/usr/local/,这里自己找到对的地方就行了。官网也有提示。
Using an unsupported CUDA toolkit version
vl_compilenn('enableGpu', true, 'cudaRoot', '/usr/local/cuda-8.0','cudaMethod', 'nvcc')
最后发现:
其实g++和gcc的版本问题不打紧的一般,如果顺利还是可以编译成功,只是会有warning,这个不要紧。matlab和CUDA的版本不对应并不影响,低版本的matlab也可以用较高版本的CUDA的,找准和对的地方就行。
————————————————————————————————————————————————————————
持续更新ing
如有不对之处,欢迎留言!交流一下。
参考:
【1】https://www.linuxidc.com/Linux/2017-03/142299.htm
最后
以上就是留胡子信封为你收集整理的编译Matconvnet的一些坑的全部内容,希望文章能够帮你解决编译Matconvnet的一些坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复