Gcc libTogl未定义引用

Gcc libTogl未定义引用,gcc,undefined-reference,Gcc,Undefined Reference,我正在尝试安装netgen(从源代码构建)。 因此需要Togl,我通过 sudo apt-get install libtogl1 libtogl-dev 键入“make”时,我收到以下错误消息: /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/

我正在尝试安装netgen(从源代码构建)。 因此需要Togl,我通过

sudo apt-get install libtogl1 libtogl-dev
键入“make”时,我收到以下错误消息:

/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位的ISU吗?
我应该怎么做才能解决这个问题?

这是一个链接到正确版本的Tcl和Tk的问题,正如@keltar所提到的。如果您的目标是从源代码构建Netgen,那么最好的选择就是坚持使用它

我遇到这个问题是因为当我运行
sudo apt get install tcl dev tk dev
时,apt为我获取了tcl8.6和tk8.6。(如果您在线搜索这些问题,您可以看到这些链接问题有时可以通过更新您的Tcl/Tk版本来解决。)我卸载了默认的Tcl-dev和Tk-dev软件包,并安装了Tc8.5-dev和tk8.5-dev

一旦获得了最适合的Tcl/Tk版本,就可以从源代码安装Netgen。比如说,

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

错误消息说您也需要链接TCL和Tk(添加
-ltcl8.5-ltk8.5
链接标志,设置正确的版本)。在OP指出此问题两年多后,netgen的最新版本仍然要求用户安装TCL//Tk的不推荐版本。