Undefined symbol error


#1

I’m compiling latest Git master on Linux openSUSE Tumbleweed x64. When attempting to run the interface binary, I hit a strange error regarding some undefined symbol:

/home/mircea/Games/SecondLife/HighFidelity_GIT/build/interface/interface: symbol lookup error: /home/mircea/Games/SecondLife/HighFidelity_GIT/build/ext/makefiles/nvtt/project/lib/libnvtt.so: undefined symbol: _ZN3ZOH5Utils6FORMATE

#2

I found a thread about something similar on Ubuntu. Apparently it has to do with a version mismatch in libnvtt. Does anyone have a suggestion for openSUSE?


#3

I also did find this BIG problem with ubuntu 18.04, some of the steps I did take are taken from various sources scattered all around forums, github, pullrequests etc, but at the end I succeeded.

At least on Ubuntu 18.04 when I found exactly the same problem with that very symbol missing,
You have to uninstall libnvtt and reinstall it from a very specific version, and be sure to setup the configuration properly. I did the following:

# unsure if this impacts other Linux versions however it seems you have to do that
apt -y install libssl1.0-dev

# uninstall libnvtt
apt remove libnvtt2 libnvtt-dev

# download good sources
git clone https://github.com/castano/nvidia-texture-tools
cd nvidia-texture-tools/
# change version and put 2.2.1
vi VERSION
# change configure essentially  
# build="release" 
# AND enable shared instead of static (!) this was quite tricky to find out in the instructions for me (!)
# $CMAKE .. -DNVTT_SHARED=1 -DCMAKE_BUILD_TYPE=$build -DCMAKE_INSTALL_PREFIX=$prefix -G "
vi configure
./configure
make
make install
sudo ln -s /usr/local/lib/libnvcore.so /usr/lib/libnvcore.so
sudo ln -s /usr/local/lib/libnvimage.so /usr/lib/libnvimage.so
sudo ln -s /usr/local/lib/libnvmath.so /usr/lib/libnvmath.so
sudo ln -s /usr/local/lib/libnvtt.so /usr/lib/libnvtt.so

After this wizardry the assignment_client started working without that symbol error. Maybe it can work in the similar way on other systems.


#4

Interesting. Thank you for the info! A few issues I’m unsure about though;

First of all, I don’t seem to have a “nvtt” package of any sort on openSUSE. Even if I find what it’s named, installing an unsupported version system wide could break the system… thankfully your example shows how to clone and use it locally so I’ll attempt that. But how can I avoid using a system wide “make install” and just do “make”, then tell the HiFi cmake to point to it from a custom path instead?

Other than that I’m a little surprised I even have issues with a Nvidia package, considering I’m using an AMD card. I assume it’s a mandatory library universal with both ATI and Nvidia.


#5

IMHO, since you are not using nvidia on your system there should be not problems in installing extra libraries, only used by HighFidelity server, but to be really sure you should be in touch with HighFidelity coders and with sysadmins for your specific OS.

I just struggled to have my domain working on various platforms including Debian with very scarce success since at least 18 months.
When I found the apparently “definitive” solution under Debian using docker I discovered that it works ~90% but some people could not connect to my domain, so now I’m going back to use native, and it seems to me that the easier platform where you can do that is Ubuntu.

Can’t help more, I’m afraid :frowning: