QT 6 error after OBS update
Describe the bug I have QT6 error from the OBS log file. But my version of QT is 5.15.12.
To Reproduce Steps to reproduce the behavior:
- Start Linux
- Open OBS
- Look for Advance Scene Switcher
- Go to the log file to see the error
Expected behavior I was looking for the window to open once I use the tools pull down menu then select A.S.S. plug-in before I stream
Logs 20:52:52.563: --------------------------------- 20:52:52.707: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher-lib.so->/usr//lib/obs-plugins/advanced-scene-switcher-lib.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:52.707: 20:52:52.846: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher-lib.so->/usr//lib/obs-plugins/advanced-scene-switcher-lib.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:52.846: 20:52:52.846: Module '/usr//lib/obs-plugins/advanced-scene-switcher-lib.so' not loaded 20:52:52.988: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher.so->/usr//lib/obs-plugins/advanced-scene-switcher.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so.1: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:52.988: 20:52:53.128: os_dlopen(/usr//lib/obs-plugins/advanced-scene-switcher.so->/usr//lib/obs-plugins/advanced-scene-switcher.so): /usr//lib/obs-plugins/advanced-scene-switcher-lib.so.1: undefined symbol: _Zls6QDebugRK11QDockWidget, version Qt_6 20:52:53.128: 20:52:53.128: Module '/usr//lib/obs-plugins/advanced-scene-switcher.so' not loaded
Version information
- OS: EndeavourOS Arch Linux
- OBS Version obs-studio-browser 30.0.2-6
- Plugin Version 1.24.2-1
Additional context I can fix some errors on my own but coding isn't my thing.
Unfortunately, the plugin only supports Qt6 as OBS switched to Qt6 a while ago.
I am not really familiar with Arch Linux so forgive me if I am missing something, but can't you just install this package, which will take care of installing all of the required dependencies? https://aur.archlinux.org/packages/obs-advanced-scene-switcher
Alternatively, I can also recommend using flatpak OBS in combination with the flatpak version of the Advanced Scene Switcher. (https://github.com/flathub/com.obsproject.Studio.Plugin.SceneSwitcher)
Or is there a particular reason you need to stick with Qt5?
No, I didn't know QT6 was ready for use. I guess I should figure out how to upgrade to QT6.
I'm sure that's where I paru pulled OBS.A.S.S. from. My last resort will be to use the flapak or snap.
Question, where are the macros stored? I could at least pull in my macros if I know where A.S.S. stores the data.
The settings are stored as part of the OBS scene collection data.
I was having the same issue, but managed to fix it. Will document everything here in case it's helpful.
Thoughts:
Looking at the diff between releases(https://github.com/WarmUpTill/SceneSwitcher/compare/1.24.1...1.24.2), nothing sticks out to me besides src/advanced-scene-switcher.cpp now having a #include <QTextStream> declaration, and using it as part of the function that backs up settings.
I only skimmed the diff, so don't take my word for it.
This makes me think that part of the qt6 libs weren't linked properly at some point, causing a build issue with newer versions of the plugin? It's been a long time since I've touched any C++ though.
Solution:
- Update + reinstall any qt6 packages on my system, just to be safe.
1.1
qt6-baseand any dependencies oftessaractshould be all that are explicitly required. 1.2 I did this with a one-liner,paru -Qg qt6 | cut -d " " -f 2 | paru -Syu - - Export a copy of settings (native function of the plugin).
- Completely remove all traces of old builds and freshly reinstall the plugin, forcing a rebuild.
3.1
paru -Rs obs-advanced-scene-switcher3.2 I also deleted everything cached for this package, for me this was in~/.cache/paru/clone/obs-advanced-scene-switcher3.3paru -Syu obs-advanced-scene-switcher --rebuild - Check logs as needed, import settings, test functionality, and confirm working again.
Some of these steps likely aren't 100% necessary (like deleting cached builds), but I wanted to cover all my bases.