我正在尝试在Matlab上安装垃圾邮件工具箱,以优化稀疏表示问题。
下载页面 - > http://spams-devel.gforge.inria.fr/downloads.html
首先,当我尝试使用compile.m
脚本编译它时,它说:
clang: error: unsupported option '-fopenmp'
error: command 'clang' failed with exit status 1
然后,我发现这篇文章,我按照下面的说明,似乎上一个错误已修复。
但现在,我收到错误说:
...mexArchetypalAnalysis.cpp:32:
./linalg/mexutils.h:15:10:
fatal error: 'typeinfo' file not found
#include <typeinfo>
当我转到源文件并对此行发表评论时,它给出了包含 iostream 的错误:
所以我可能认为这是关于库的问题,但我不熟悉C ++或C的东西,我需要一些帮助。
答案 0 :(得分:0)
最后,我通过以下步骤解决了这个问题:
通过openmp
安装 gcc编译器和homebrew
支持:
brew install gcc --without-multilib
安装后,在命令行中:
alias gcc=gcc-6
alias clang=gcc-6
alias g++=g++-6
通过这样做,您可以使用带有openmp
支持的cpp编译器。
让我们运行一个测试程序来检查openmp
是否正常工作:
#include <stdio.h>
#include <omp.h>
int print(int i){
int tmp = 0;
for(int i=0;i<100000000;i++){
tmp += 1; // time consuming loop
}
printf("%d\t",i);
return i;
}
int main(){
#pragma omp parallel for
for(int i=0; i<10;i++){
print(i);
}
return 0;
}
<强>编译:强>
gcc -fopenmp test.cpp -o run
或
g++ -fopenmp test.cpp -o run
<强>输出:强>
0 8 3 6 1 9 4 7 2 5
如您所见,它们未按订单打印,这表示openmp
正常工作。