2017-10-12 88 views
0

我想使用庫fgsl,這取決於gsl。我有問題,指示在配置fgsl時已安裝gsl。我想要使​​用這些庫的靜態版本。我不能使用來自Linux軟件包的gsl庫,這些版本不夠新。本地安裝GSL的FGSL配置

首先我在本地下載,配置,編譯並安裝gsl,即使用--prefix選項。 (說明如下)

然後我下載fgsl,配置它。這最後一次操作失敗,因爲我沒有成功指示gsl的位置。我試圖使用gsl_LIBS失敗。

wget http://ftp.igh.cnrs.fr/pub/gnu/gsl/gsl-2.3.tar.gz -O gsl.tar.gz 
mkdir -p gsl_build && cd gsl_build 
tar -xzf ../gsl.tar.gz --strip 1 
autoreconf -fi 
./configure CFLAGS="-Wall" --prefix `pwd`/../gsl 
make 
make install 
cd .. 
rm -rf gsl_build 

下面是我運行安裝fgsl

wget https://github.com/reinh-bader/fgsl/archive/v1.2.0.tar.gz -O fgsl.tar.gz 
mkdir -p fgsl_build 
cd fgsl_build 
tar -xzf ../fgsl.tar.gz --strip 1 
autoreconf -fi 
export gsl_LIBS=`pwd`/../gsl/lib 
./configure CFLAGS="-Wall" FCFLAGS="-Wall" --prefix `pwd`/../fgsl --libdir=`pwd`/../gsl/lib --includedir=`pwd`/../gsl/include 
make 
make check 
make install 
cd .. 
rm -rf fgsl_build 

命令我試圖爲開源項目AcousticBEM做到這一點。這是log提出的問題。

+0

什麼是'configure'輸出有關?但是你沒有指定一個完整的鏈接行,只是一個目錄名。 – francescalus

+0

我試過'export gsl_LIBS ='pwd' /../ gsl/lib/libgsl.a;'pwd' /../ gsl/lib/libgslcblas.a',但沒有成功 –

+0

輸出日誌位於本網頁的末尾:https://travis-ci.org/Gjacquenot/AcousticBEM –

回答

0

那麼,這裏是我更新的腳本在本地安裝gslfgsl。我用PKG_CONFIG_PATH來告訴fgsl其中gsl已安裝。我最終得到一個名爲gsl的目錄,其中包含gsl庫和fgsl庫。

首先一個shell腳本來安裝gsl

export gsl_INSTALL_DIR=`pwd`/gsl 
[ -f ./gsl.tar.gz ] && echo "No need to download gsl" || wget http://ftp.igh.cnrs.fr/pub/gnu/gsl/gsl-2.3.tar.gz -O gsl.tar.gz 
mkdir -p gsl_build 
cd gsl_build 
tar -xzf ../gsl.tar.gz --strip 1 
autoreconf -fi 
./configure CFLAGS="-Wall" --prefix=${gsl_INSTALL_DIR} 
make 
make install 
cd .. 
rm -rf gsl_build 

其次,腳本在本地使用新安裝fgsl安裝gsl

export PKG_CONFIG_PATH=`pwd`/gsl/lib/pkgconfig 
export gsl_LIBS=`pwd`/gsl 
[ -f ./fgsl.tar.gz ] && echo "No need to download fgsl" || wget https://github.com/reinh-bader/fgsl/archive/v1.2.0.tar.gz -O fgsl.tar.gz 
mkdir -p fgsl_build 
cd fgsl_build 
tar -xzf ../fgsl.tar.gz --strip 1 
autoreconf -fi 
./configure CFLAGS="-Wall" FCFLAGS="-Wall" --prefix=${gsl_LIBS} 
make 
make check 
make install 
cd .. 
rm -rf fgsl_build