Установка LibLinear в MATLAB R2014a

#matlab #makefile #liblinear

#matlab #makefile #liblinear

Вопрос:

Я пытаюсь установить LibLinear для MATLABR2014a в Linux. При компиляции в MATLAB read.mexa64 и write.mexa64 создаются просто отлично, сбой происходит в train.mexa64. Ошибка, которую я получал, была:

 /home/admin/Documents/Project/Software/liblinear-1.94/linear.cpp:2739:19: 
warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’, 
declared with attribute warn_unused_result [-Wunused-result] fscanf(fp,"n");               ^

If make.m fails, please check README about detailed instructions.
  

Итак, я разобрался с обработкой возвращаемого значения в linear.cpp и это все еще завершается неудачей, предоставляя только последнюю строку, направляющую меня к README. Я также пытался установить gcc-4.7, g -4.7 и cpp-4.7, но процесс make по-прежнему завершается без какой-либо информации. Как следует из этого, для каталога matlab установлено значение:

 MATLABDIR = /usr/local/matlab
  

и я включил

 -U_FORTIFY_SOURCE 
  

в CFLAGS на всякий случай, если это были игнорируемые значения, вызывающие шумиху. Мне удалось скомпилировать его из командной строки в главном каталоге, и он отлично работает, но было бы здорово иметь приятный интерфейс MATLAB 🙂 Если кому-нибудь удалось запустить его, я был бы очень благодарен за любую помощь!

Ответ №1:

Если кто-нибудь наткнется на это, то я нашел метод, который, кажется, работает. Я пытался напрямую использовать Makefile в папке matlab, но постоянно получал странные ошибки компилятора с просьбой изменить исходный каталог. Однако, если вы зайдете в Makefile и измените строку

 MEX_OPTION = CC#$(CXX) CXX#$(CXX) CFLAGS#"$(CFLAGS)" CXXFLAGS#"$(CFLAGS)"
  

Для

 MEX_OPTION = CC=$(CXX) CXX=$(CXX) CFLAGS="$(CFLAGS)" CXXFLAGS="$(CFLAGS)"
  

это должно сработать.

Комментарии:

1. столкнулся с той же проблемой, и это сработало, спасибо

2. Я также столкнулся с той же проблемой, и предложенный метод сработал.