انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => نصب، راه‌اندازی و بروزآوری => نویسنده: arvin2017 در 11 خرداد 1396، 03:06 ق‌ظ

عنوان: مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 11 خرداد 1396، 03:06 ق‌ظ
سلام.من میخوام متلب رو کامپایل کنم که این ارور رو میده:
reza@ubuntu:~$ cd /home/reza/Develop/caffe
reza@ubuntu:~/Develop/caffe$ make matcaffe
MEX matlab/+caffe/private/caffe_.cpp
Building with 'g++'.
Warning: You are using gcc version '4.8.4'. The version of gcc is not supported. The version currently supported with MEX is '4.7.x'. For a list of currently supported compilers see: http://www.mathworks.com/support/compilers/current_release.
Warning: You are using gcc version '4.8.4-2ubuntu1~14.04.3)'. The version of gcc is not supported. The version currently supported with MEX is '4.7.x'. For a list of currently supported compilers see: http://www.mathworks.com/support/compilers/current_release.
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp: In function ‘void delete_solver(int, mxArray**, int, const mxArray**)’:
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:208:3: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   }), solvers_.end());
   ^
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:208:4: error: no matching function for call to ‘remove_if(std::vector<boost::shared_ptr<caffe::Solver<float> > >::iterator, std::vector<boost::shared_ptr<caffe::Solver<float> > >::iterator, delete_solver(int, mxArray**, int, const mxArray**)::__lambda0)’
   }), solvers_.end());
    ^
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:208:4: note: candidate is:
In file included from /usr/include/c++/4.8/algorithm:62:0,
                 from ./include/caffe/blob.hpp:4,
                 from ./include/caffe/caffe.hpp:7,
                 from /home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:18:
/usr/include/c++/4.8/bits/stl_algo.h:1134:5: note: template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)
     remove_if(_ForwardIterator __first, _ForwardIterator __last,
     ^
/usr/include/c++/4.8/bits/stl_algo.h:1134:5: note:   template argument deduction/substitution failed:
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp: In substitution of ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate) [with _FIter = __gnu_cxx::__normal_iterator<boost::shared_ptr<caffe::Solver<float> >*, std::vector<boost::shared_ptr<caffe::Solver<float> > > >; _Predicate = delete_solver(int, mxArray**, int, const mxArray**)::__lambda0]’:
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:208:4:   required from here
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:208:4: error: template argument for ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’ uses local type ‘delete_solver(int, mxArray**, int, const mxArray**)::__lambda0’
   }), solvers_.end());
    ^
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:208:4: error:   trying to instantiate ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp: In function ‘void delete_net(int, mxArray**, int, const mxArray**)’:
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:293:3: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
   }), nets_.end());
   ^
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:293:4: error: no matching function for call to ‘remove_if(std::vector<boost::shared_ptr<caffe::Net<float> > >::iterator, std::vector<boost::shared_ptr<caffe::Net<float> > >::iterator, delete_net(int, mxArray**, int, const mxArray**)::__lambda1)’
   }), nets_.end());
    ^
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:293:4: note: candidate is:
In file included from /usr/include/c++/4.8/algorithm:62:0,
                 from ./include/caffe/blob.hpp:4,
                 from ./include/caffe/caffe.hpp:7,
                 from /home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:18:
/usr/include/c++/4.8/bits/stl_algo.h:1134:5: note: template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)
     remove_if(_ForwardIterator __first, _ForwardIterator __last,
     ^
/usr/include/c++/4.8/bits/stl_algo.h:1134:5: note:   template argument deduction/substitution failed:
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp: In substitution of ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate) [with _FIter = __gnu_cxx::__normal_iterator<boost::shared_ptr<caffe::Net<float> >*, std::vector<boost::shared_ptr<caffe::Net<float> > > >; _Predicate = delete_net(int, mxArray**, int, const mxArray**)::__lambda1]’:
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:293:4:   required from here
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:293:4: error: template argument for ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’ uses local type ‘delete_net(int, mxArray**, int, const mxArray**)::__lambda1’
   }), nets_.end());
    ^
/home/reza/Develop/caffe/matlab/+caffe/private/caffe_.cpp:293:4: error:   trying to instantiate ‘template<class _FIter, class _Predicate> _FIter std::remove_if(_FIter, _FIter, _Predicate)’

make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255
reza@ubuntu:~/Develop/caffe$
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: سلمان م. در 11 خرداد 1396، 03:22 ق‌ظ
اوبونتو ۱۴.۰۴ داری؟

خودش داره میگه مشکل از چی هست. gcc نسخه ۴.۷ استفاده کن. با دستور زیر می‌تونی gcc و g++ نسخه ۴.۷ رو نصب کنی.

$ sudo apt install gcc-4.7 g++-4.7

در ضمن لینک به سورس رو هم بذار، تا ببینم فایل‌هاش چی هست و محتویات make چیه.
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 11 خرداد 1396، 12:55 ب‌ظ
آره از اوبونتو 14.04 استفاده میکنم
gcc 4.7 رو هم نصب کردم ولی باز این ارور رو میده:
http://upload.ustmb.ir/uploads/01_171496305423281.png
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: سلمان م. در 11 خرداد 1396، 05:05 ب‌ظ
آره از اوبونتو 14.04 استفاده میکنم
gcc 4.7 رو هم نصب کردم ولی باز این ارور رو میده:
http://upload.ustmb.ir/uploads/01_171496305423281.png

چرا قبل از دستور make دستور sudo رو زدی؟
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 11 خرداد 1396، 05:35 ب‌ظ
بدون sudo هم زدم.این ارور رو داد:
http://upload.ustmb.ir/uploads/01_171496322280181.png
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: سلمان م. در 11 خرداد 1396، 11:07 ب‌ظ
بدون sudo هم زدم.این ارور رو داد:
http://upload.ustmb.ir/uploads/01_171496322280181.png
اینکه میگه g++ نصب نداری. چک کن ببینی، پاکش نکردی.

$ g++ --version
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 12 خرداد 1396، 11:48 ق‌ظ

وقتی دستور make matcaffe میزنم، میگه gcc 4.8 ساپورت نمیکنه و باید gcc 4.7 نصب کنی

وقتی gcc 4.7  نصب میکنم میگه g++ وجود نداره
وقتی g++رو نصب میکنم میگه gcc 4.8 رو ساپورت نمیکنه
این تصویرو ببینین:
http://upload.ustmb.ir/uploads/02_171496387840531.jpg
من ابونتو 14.04 دارم که متلب 2014 رو ساپورت نمیکنه:
http://upload.ustmb.ir/uploads/02_171496387840552.jpg

میتونه از این باشه؟!
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: سلمان م. در 12 خرداد 1396، 12:16 ب‌ظ
جواب سوال من رو ندادی. خروجی اون دستور آخر که دادم، چی هست؟ برای هر دو تا g++ که نصب می‌کنی، خروجی دستور رو بده.
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 12 خرداد 1396، 12:35 ب‌ظ
reza@ubuntu:~$ g++ --version
g++ (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 12 خرداد 1396، 12:40 ب‌ظ
وقتی دستور make matcaffe رو میزنم این ارور رو میده:
https://pastebin.com/1cPrMP01
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: سلمان م. در 12 خرداد 1396، 02:25 ب‌ظ
اول از همه مطمئن شو، که g++-4.7 رو نصب کردی. با دستور زیر:
$ g++-4.7 --version

g++ به صورت اتوماتیک وصل شده به g++-4.8 چون آخرین نسخه موجود توی اوبونتو ۱۴.۰۴ هست. ولی شما که g++-4.7 رو هم می‌تونی از توی مخزن نصب کنی و با استفاده از دستور g++-4.7 ازش استفاده کنی. ولی چون توی این مورد می‌خوای که g++ وصل شه به نسخه ۴.۷ و نه آخرین نسخه‌ی موجود توی مخزن ۱۴.۰۴ که ۴.۸ هست، می‌تونی از یه دستوری به اسم alias استفاده کنی. با استفاده از دستور زیر می‌تونی بگی که هر موقع g++ رو می‌زنی برات g++-4.7 رو بیاره.
$ alias g++=g++-4.7
خوب الآن بزن توی ترمینال، تا ببینی که به ۴.۷ وصل شده یا نه.
$ g++ --version

این دستور alias فقط تا موقعی کار می‌کنه تو ترمینال رو نبندی. برای اینکه به صورت دایم ازش استفاده کنی باید یه فایل توی home بسازی به اسم .bash_aliases و سپس دستور alias رو توی اون بنویسی. با دستور زیر می‌تونی اون کار رو بکنی.

با دستور زیر می‌ره به پوشه home
$ cd

با دستور زیر خروجی دستور زیر رو به آخر اون فایل اضافه می‌کنه (و اگه وجود نداشته باشه، می‌سازدش). (نکته: به علامت >> توجه کن و حواست باشه دوتا هست و نه یکی.)
$ echo 'alias g++=g++-4.7' >> .bash_aliases

دستور زیر رو هم بزنی، تا تغییراتی که دادی بدون نیاز به بستن و دوباره بازکردن ترمینال اعمال بشه.
$ source .bash_aliases
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 12 خرداد 1396، 05:29 ب‌ظ
ممنون از راهنمایی جامعتون.ولی متاسفانه ارور زیر رو داد:
reza@ubuntu:~$ g++-4.7 --version
g++-4.7 (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

reza@ubuntu:~$ alias g++=g++-4.7
reza@ubuntu:~$ cd ~/Develop/caffe
reza@ubuntu:~/Develop/caffe$ make matcaffe
/bin/sh: 1: g++: not found
awk: line 1: syntax error at or near <
MEX matlab/+caffe/private/caffe_.cpp
No supported compiler or SDK was found. For options, visit http://www.mathworks.com/support/compilers/R2014a/glnxa64.
make: *** [matlab/+caffe/private/caffe_.mexa64] Error 255
reza@ubuntu:~/Develop/caffe$ ^C
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: سلمان م. در 12 خرداد 1396، 08:25 ب‌ظ
دستور alias رو بریز توی فایل .bash_aliases ببین درست میشه.
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 13 خرداد 1396، 03:41 ق‌ظ
ممنون.ولی بازم ارور کامنت قبلی رو میده
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: دانیال بهزادی در 13 خرداد 1396، 03:25 ب‌ظ
داری این رو کامپایل می‌کنی؟
http://caffe.berkeleyvision.org/

ببخشید که می‌پرسم، ولی دقیقاً می‌دونی چیه این؟
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: arvin2017 در 13 خرداد 1396، 04:51 ب‌ظ
نه فقط شما میدونی چیه!
ببخشید اینو میگم!!!
عنوان: پاسخ : مشکل کامپایل مت کفه یا Matcaffe
ارسال شده توسط: nixoeen در 15 خرداد 1396، 12:31 ق‌ظ
نه فقط شما میدونی چیه!
اگر می‌خواید جواب بگیرید بهتره با رعایت ادب، جواب سوال رو بدید، چون برای من هم واقعا سواله!

من میخوام متلب رو کامپایل کنم
می‌دونید این نرم‌افزاری که کامپایل می‌کنید متلب نیست دیگه؟