Compiling LIBFFM On OSX 10.9

原文:http://blog.josephmisiti.com/compiling-libffm-on-osx-10.9/

I recently tried to compile LIBFFM (Field-aware Factorization Machines) on my local machine running 10.9 and things did not work out as expected:

fmm.cpp:11:10: fatal error: 'omp.h' file not found
#include <omp.h>
         ^
1 error generated.

So it turns out the version of GCC that ships with OSX does not support this header

I ended up getting it compiled, and here is how I did it:

First, download a new version of GCC:

wget http://prdownloads.sourceforge.net/hpc/gcc-4.9-bin.tar.gz

Next, upzip and untar it, and put it in /usr/local/bin

gunzip gcc-4.9-bin.tar.gz
sudo tar -xvf gcc-4.9-bin.tar -C /

Now, you need to update the Makefile that comes with LIBFFM to look like this

CXX = g++
CXXFLAGS = -Wall -O3 -std=c++0x # uncomment the following flags if you do not want to use OpenMP DFLAG += -DUSEOMP CXXFLAGS += -fopenmp all: ffm-train ffm-predict ffm-train: ffm-train.cpp ffm.o $(CXX) $(CXXFLAGS) -o $@ $^ ffm-predict: ffm-predict.cpp ffm.o $(CXX) $(CXXFLAGS) -o $@ $^ ffm.o: ffm.cpp ffm.h $(CXX) $(CXXFLAGS) $(DFLAG) -c -o $@ $< clean: rm -f ffm-train ffm-predict ffm.o timer.o

Finally, run make and you are good to go

(vor)JOSEPH-MISITI:libffm-1.0 josephmisiti$ make
g++ -Wall -O3 -std=c++0x -fopenmp -DUSEOMP -c -o ffm.o ffm.cpp
g++ -Wall -O3 -std=c++0x -fopenmp -o ffm-train ffm-train.cpp ffm.o g++ -Wall -O3 -std=c++0x -fopenmp -o ffm-predict ffm-predict.cpp ffm.o

转载于:https://www.cnblogs.com/zhizhan/p/5121489.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值