zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    OFBiz中services调用机制
    OFBiz中JOB的运行机制
    ofbiz中运行配置及流程
    ofbiz框架学习
    在java学习中的思考
    在更新操作中所需要注意的事项
    级联删除
    关于整合hibernate4和spring3的相关注意事项
    常见系统中文字体的英文名
    flash Socket 连接 以及 跨域策略文件crossdomain.xml配置详解
  • 原文地址:https://www.cnblogs.com/zhizhan/p/5121489.html
Copyright © 2011-2022 走看看