g++ -o program main.cpp classOne.cpp classTwo.cpp -lgsl -lgslblas -lm
這就是我安裝GSL包時的編譯方式。 但現在我正在一臺服務器上工作,我無權安裝GSL-Library。 我有什麼選擇?g ++鏈接問題與GSL
THX
g++ -o program main.cpp classOne.cpp classTwo.cpp -lgsl -lgslblas -lm
這就是我安裝GSL包時的編譯方式。 但現在我正在一臺服務器上工作,我無權安裝GSL-Library。 我有什麼選擇?g ++鏈接問題與GSL
THX
我不得不經常爲此,執行如下:
mypref
),另一種以建立圖書館(假設tmp
)。您有兩個新目錄:~/mypref
和~/tmp
。~/tmp
(最後一個版本是ftp://ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz),提取物和去所產生的子目錄(gsl-1.14
):cd ~/tmp
wget ftp://ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz
tar -xvzf gsl-1.14.tar.gz
cd gsl-1.14
configure
腳本3210作爲安裝前綴(可能取決於你的服務器的其它選項):./configure --prefix=${HOME}/mypref
make
make install
~/tmp
目錄:cd; rm -rf tmp
現在你可以使用編譯程序:
g++ -o program main.cpp classOne.cpp classTwo.cpp -I${HOME}/mypref/include -lm -L${HOME}/mypref/lib -lgsl -lgslcblas
-I
和-L
分別指示標題和庫的路徑。如果你的程序是指在一個範圍內,其中主目錄是不可見的執行,考慮靜態鏈接:
g++ -o program main.cpp classOne.cpp classTwo.cpp ${HOME}/mypref/lib/libgsl.a ${HOME}/mypref/lib/libgslcblas.a -I${HOME}/mypref/include -lm
由最後一個命令生成的二進制是比以前更大,但是從GSL和完全獨立GSLCBLAS。
這是我等待的答案! thx爲你的時間花花公子!!! – JavaHater 2010-12-17 14:45:49
不客氣:-) – 2010-12-17 21:28:21
將它安裝在您的主目錄中並給出正確的鏈接路徑。這也不是一個選擇? – DumbCoder 2010-12-17 13:53:54
@DumbCoder是正確的,我的答案是一個詳細的過程如何做到這一點,你可以安裝很多其他庫,你可能需要這樣的。 – 2010-12-17 14:00:54