编译ICC二进制文件

时间:2014-10-23 16:30:14

标签: r gcc makefile cluster-computing icc

这可能是一个简单的问题,但我对编译知之甚少。

我有一个可以用gcc或icc编译的makefile,我想在集群上编译它。这是一个独立的程序。 我在我的主文件夹中用gcc(march = native)编译了它。是否有可能我也可以用ICC编译它(在家庭主文件夹以外的其他位置)。以下是原始的makefile,

# GNU
# Make sure you set the correct -march for your machine
CC = gcc
CXX = g++
MACHINE = -march=native
CXXFLAGS = -ffast-math -fopenmp -O3 -Wall -fPIC $(MACHINE) -I ../boostIncl
CFLAGS = -std=c99 -fopenmp $(CXXFLAGS)

mmbgx : mmbgx.o rundir.o qnorm.o sokal.o bgx_frontend.o 
    $(CXX) -fopenmp $(MACHINE) mmbgx.o rundir.o qnorm.o sokal.o bgx_frontend.o -o mmbgx

mmbgx.dll : bgx.o rundir.o qnorm.o sokal.o 
    $(CXX) -shared -mno-cygwin mmbgx.o rundir.o qnorm.o sokal.o -o mmbgx.dll

mmbgx.so : mmbgx.o rundir.o qnorm.o sokal.o 
    $(CXX) -shared -fopenmp mmbgx.o rundir.o qnorm.o sokal.o -o mmbgx.so

.PHONY : clean

clean : 
    rm -f mmbgx *.o *.so *.exe *.dll

mmbgx.o: mmbgx.cc rand.hh rundir.hh qnorm.h sokal.hh bgx_updates.hh rwm.hh bgx.hh
rundir.o: rundir.cc rundir.hh
sokal.o: sokal.cc sokal.hh
bgx_frontend.o: bgx_frontend.cc bgx.hh
qnorm.o: qnorm.c qnorm.h

# ICC
# Make sure you set the correct -march for your machine
#CC = icc
#CXX = icc
#LINKER = icpc -Bstatic -openmp-link static
#MACHINE =
#CXXFLAGS = -Bstatic -fast -openmp -openmp-link static -O3 -fPIC $(MACHINE) -I /apps/boost/1.34.0/include/boost-1_34
#CFLAGS = -std=c99 -openmp -openmp-link static $(CXXFLAGS)
#
#mmbgx : mmbgx.o rundir.o qnorm.o sokal.o bgx_frontend.o
#  $(LINKER) -openmp $(MACHINE) mmbgx.o rundir.o qnorm.o sokal.o bgx_frontend.o -o mmbgx
#
#mmbgx.dll : mmbgx.o rundir.o qnorm.o sokal.o
#  $(CXX) -shared -mno-cygwin mmbgx.o rundir.o qnorm.o sokal.o -o mmbgx.dll
#
#bgx.so : bgx.o rundir.o qnorm.o sokal.o
#  $(CXX) -shared mmbgx.o rundir.o qnorm.o sokal.o -o mmbgx.so
#
#.PHONY : clean
#
#clean :
#  rm -f mmbgx *.o *.so *.exe *.dll
#
#mmbgx.o: mmbgx.cc rand.hh rundir.hh qnorm.h sokal.hh bgx_updates.hh rwm.hh bgx.hh
#rundir.o: rundir.cc rundir.hh
#sokal.o: sokal.cc sokal.hh
#bgx_frontend.o: bgx_frontend.cc bgx.hh
#qnorm.o: qnorm.c qnorm.h

我尝试通过取消注释GCC部分和评论gcc来编译ICC。但是我收到了错误,

Makefile.standalone:39: *** missing separator.  Stop. 

39将是$(LINKER) -openmp $(MACHINE) mmbgx.o rundir.o qnorm.o sokal.o bgx_frontend.o -o mmbgx

我将非常感谢你的帮助。

0 个答案:

没有答案