2014-10-13 26 views
3

我想安裝netgen(從源代碼構建)。 因此,需要Togl和我通過libTogl未定義的引用

sudo apt-get install libtogl1 libtogl-dev 

安裝它當輸入「使」我收到以下錯誤信息:

/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libTogl.so: undefined reference to `Tk_InitStubs' 
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libTogl.so: undefined reference to `tkStubsPtr' 
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libTogl.so: undefined reference to `Tcl_InitStubs' 
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libTogl.so: undefined reference to `tclStubsPtr' 

也許Togl未安裝正確。這是一個32位64位issu嗎? 我該怎麼做才能解決這個問題?

+0

錯誤消息說您還需要鏈接TCL和Tk(添加'-ltcl8.5 -ltk8.5'來鏈接標誌,設置正確的版本)。 – keltar

回答

3

這是一個鏈接到正確版本的Tcl和Tk的問題,如@keltar所述。如果你的目標是從源頭上構建Netgen,那麼最好的辦法就是堅持netgen-5.3.1,即works with tcl8.5 and tk8.5

我遇到了這個問題,因爲當我運行sudo apt-get install tcl-dev tk-dev時,apt-get爲我提取了tcl8.6和tk8.6。 (如果您在線搜索這些問題,您可以看到,有時可以通過更新Tcl/Tk版本來解決這些鏈接問題。)我卸載了默認的tcl-dev和tk-dev軟件包,並安裝了tcl8.5-dev和tk8。 5-dev代替。

一旦你有最適合的Tcl/Tk版本,你可以從源代碼安裝Netgen。例如,

./configure --with-tclconfig=/usr/lib/tcl8.5/ --with-tkconfig=/usr/lib/tk8.5/ 
make 
make install 
+1

OP在指出此問題兩年多之後,最新版本的netgen仍然要求用戶安裝已棄用的Tcl // Tk版本。 https://sourceforge.net/p/netgen-mesher/discussion/905306/thread/6b00b981/。 – RHertel

+0

這就像一個魅力,謝謝! – Germanunkol