#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. Я также столкнулся с той же проблемой, и предложенный метод сработал.