2017-08-04 56 views
0

我想使用需要lapack的软件才能正确编译。但我无法在Mac上使Lapack工作。是否可以在Mac OSX 10.11上安装lapack?

http://www.netlib.org/lapack/

我试图安装LAPACK-3.7.1

I型make这个消息到达:

make: *** No rule to make target `lsame.o', needed by `testlsame'. Stop. 

我已经尝试修改make.inc但似乎我在互联网上看到的一些说明没有更新。我看到我们必须将PLAT更改为PLAT = _DARWIN。

http://www.commonmediainc.com/2008/03/24/building-lapack-and-rubys-linalg-on-mac-os-x/

我不能看到它在我make.inc文件。

是否有一步一步的指令来安装lapack?

make.inc文件:

#################################################################### 
# LAPACK make include file.          # 
# LAPACK, Version 3.7.0           # 
# December 2016             # 
#################################################################### 

SHELL = /bin/sh 

# CC is the C compiler, normally invoked with options CFLAGS. 
# 
CC  = gcc 
CFLAGS = -O3 

# Modify the FORTRAN and OPTS definitions to refer to the compiler 
# and desired compiler options for your machine. NOOPT refers to 
# the compiler options desired when NO OPTIMIZATION is selected. 
# 
# Note: During a regular execution, LAPACK might create NaN and Inf 
# and handle these quantities appropriately. As a consequence, one 
# should not compile LAPACK with flags such as -ffpe-trap=overflow. 
# 
FORTRAN = gfortran 
OPTS = -O2 -frecursive 
DRVOPTS = $(OPTS) 
NOOPT = -O0 -frecursive 

# Define LOADER and LOADOPTS to refer to the loader and desired 
# load options for your machine. 
# 
LOADER = gfortran 
LOADOPTS = 

# The archiver and the flag(s) to use when building an archive 
# (library). If your system has no ranlib, set RANLIB = echo. 
# 
ARCH  = ar 
ARCHFLAGS = cr 
RANLIB = ranlib 

# Timer for the SECOND and DSECND routines 
# 
# Default: SECOND and DSECND will use a call to the 
# EXTERNAL FUNCTION ETIME 
#TIMER = EXT_ETIME 
# For RS6K: SECOND and DSECND will use a call to the 
# EXTERNAL FUNCTION ETIME_ 
#TIMER = EXT_ETIME_ 
# For gfortran compiler: SECOND and DSECND will use a call to the 
# INTERNAL FUNCTION ETIME 
TIMER = INT_ETIME 
# If your Fortran compiler does not provide etime (like Nag Fortran 
# Compiler, etc...) SECOND and DSECND will use a call to the 
# INTERNAL FUNCTION CPU_TIME 
#TIMER = INT_CPU_TIME 
# If none of these work, you can use the NONE value. 
# In that case, SECOND and DSECND will always return 0. 
#TIMER = NONE 

# Uncomment the following line to include deprecated routines in 
# the LAPACK library. 
# 
#BUILD_DEPRECATED = Yes 

# LAPACKE has the interface to some routines from tmglib. 
# If LAPACKE_WITH_TMG is defined, add those routines to LAPACKE. 
# 
#LAPACKE_WITH_TMG = Yes 

# Location of the extended-precision BLAS (XBLAS) Fortran library 
# used for building and testing extended-precision routines. The 
# relevant routines will be compiled and XBLAS will be linked only 
# if USEXBLAS is defined. 
# 
#USEXBLAS = Yes 
#XBLASLIB = -lxblas 

# The location of the libraries to which you will link. (The 
# machine-specific, optimized BLAS library should be used whenever 
# possible.) 
# 
BLASLIB  = ../../librefblas.a 
CBLASLIB  = ../../libcblas.a 
LAPACKLIB = liblapack.a 
TMGLIB  = libtmglib.a 
LAPACKELIB = liblapacke.a 

的Makefile:

include ./make.inc 

all: testlsame testslamch testdlamch testsecond testdsecnd testieee testversion 

testlsame: lsame.o lsametst.o 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

testslamch: slamch.o lsame.o slamchtst.o 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

testdlamch: dlamch.o lsame.o dlamchtst.o 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

testsecond: second_$(TIMER).o secondtst.o 
    @echo "[INFO] : TIMER value: $(TIMER) (given by make.inc)" 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

testdsecnd: dsecnd_$(TIMER).o dsecndtst.o 
    @echo "[INFO] : TIMER value: $(TIMER) (given by make.inc)" 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

testieee: tstiee.o 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

testversion: ilaver.o LAPACK_version.o 
    $(LOADER) $(LOADOPTS) -o [email protected] $^ 

run: all 
    ./testlsame 
    ./testslamch 
    ./testdlamch 
    ./testsecond 
    ./testdsecnd 
    ./testieee 
    ./testversion 

clean: cleanobj cleanexe cleantest 
cleanobj: 
    rm -f *.o 
cleanexe: 
    rm -f test* 
cleantest: 
    rm -f core 

.SUFFIXES: .o .f 
.f.o: 
    $(FORTRAN) $(OPTS) -c -o [email protected] $< 

slamch.o: slamch.f ; $(FORTRAN) $(NOOPT) -c -o [email protected] $< 
dlamch.o: dlamch.f ; $(FORTRAN) $(NOOPT) -c -o [email protected] $< 

我尝试过自制,但它不工作:

brew install lapack 

Error: No available formula with the name "lapack" 
==> Searching for similarly named formulae... 
Error: No similarly named formulae found. 
==> Searching taps... 
This formula was found in a tap: 
homebrew/science/lapack-manpages 
To install it, run: 
    brew install homebrew/science/lapack-manpages 

但即使brew install homebrew/science/lapack-manpages不工作。 ..

Homebrew 0.9.9 (git revision 1158; last commit 2016-07-20) Homebrew/homebrew-core (git revision f7372; last commit 2016-07-20)

回答

-1

尝试

Brew cask install lapack 

或者

Brew cask install Mac ports;port install lapack