From: Dominic Hayward (
Date: Tue Jan 26 2021 - 12:11:11 CST

Good suggestion, but a quick grep of libtng_io confirmed that all of the
"missing functions" were already there.

I've finally managed to get it working by using the dynamic library
(TNGDYNAMIC=1), this at least allows the plugins to finish compiling.
VMD then complains on startup that it can't find the libtng libraries,
but manually copying them over into the molfile folder seemed to do the
trick. I'm sure there must be a more elegant solution, but it's better
than nothing. Thanks again for your help!

All the best,


On 26/01/2021 15:51, John Stone wrote:
> There may be another library you have to link against in addition to
> libtng_io, I know that the plugin changed quite a bit through several
> versions, and even I don't have a completely current and up-to-date
> recipe for compiling it at present. I would double check that they
> haven't split various routines out into another library in the version
> you're compiling. Worst case, you can grep for that missing function
> "tng_implicit_num_particles_set" and see if it's in the src for one
> of their TNG libraries.
> Best regards,
> John Stone
> On Tue, Jan 26, 2021 at 11:08:29AM +0100, Dominic Hayward wrote:
>> Thanks for the quick reply! I've corrected the TNGLDFLAGS variable
>> to "-ltng_io" but unfortunately, I'm getting the same "undefined
>> reference" errors as before:
>> "tngplugin.C:(.text+0x3e): undefined reference to
>> `tng_frame_set_read_current_only_data_from_block_id'
>> /usr/bin/ld:
>> ./compile/lib_LINUXAMD64/molfile/libmolfile_plugin.a(tngplugin-s.o):
>> in function `write_tng_timestep(void*, molfile_timestep_t const*)':
>> tngplugin.C:(.text+0xe8): undefined reference to
>> `tng_implicit_num_particles_set'
>> etc. etc."
>> It seemed to like the flag (i.e. it didn't give me a "cannot find"
>> error) but the linkage is still failing. Any ideas what else it
>> might be?
>> Cheers,
>> Dominic
>> On 25/01/2021 20:02, Vermaas, Josh wrote:
>>> I've done this before. I think it is your TNGLDFLAGS, which should be
>>> -ltng_io based on what was in plugins/Make-arch for LINUX or LINUXALPHA.
>>> I don't think it is set in LINUXAMD64 by default, but -shared isn't
>>> going to cut it. If my hypothesis is correct, your linkage should fail
>>> with alot of calls to the tng library itself.
>>> -Josh
>>> On 1/25/21 12:46 PM, Dominic Hayward wrote:
>>>> Hello,
>>>> I'm currently trying to compile VMD from source with the tngplugin.
>>>> Without the tng plugin everything compiles smoothly and runs as it
>>>> should. However, when I include the following environment variables:
>>>> # location of
>>>> TNGLIB="-L/usr/local/lib"
>>>> # location of tng/tng_io.h
>>>> TNGINC="-I/usr/local/include"
>>>> TNGLDFLAGS="-shared"
>>>> the plugin fails to compile, with a heap of "undefined reference"
>>>> errors. If anyone could point me in the general direction of where I'm
>>>> going wrong, that would be much appreciated!
>>>> Thanks in advance,
>>>> Dominic
>>>> ------------------------------------------------------------------------------------------------
>>>> ------------------------------------------------------------------------------------------------
>>>> Forschungszentrum Juelich GmbH
>>>> 52425 Juelich
>>>> Sitz der Gesellschaft: Juelich
>>>> Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
>>>> Vorsitzender des Aufsichtsrats: MinDir Volker Rieke
>>>> Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
>>>> Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt
>>>> ------------------------------------------------------------------------------------------------
>>>> ------------------------------------------------------------------------------------------------