1

我正在尝试在 Linux 上为 MATLABR2014a 安装 LibLinear。在 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 界面会很棒:) 如果有人设法让它运行起来,我将非常感谢任何帮助!

4

1 回答 1

3

如果有人偶然发现这一点,那么我发现了一种似乎可行的方法。我尝试直接在 matlab 文件夹中使用 Makefile,但奇怪的是得到编译器错误,要求更改源目录。但是,如果您进入 Makefile 并更改该行

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

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

它应该工作。

于 2014-07-06T21:56:03.767 回答