[Development] Symbol clashes with static Qt libraries

Tor Arne Vestbø Tor.arne.Vestbo at qt.io
Tue Jul 31 14:00:47 CEST 2018



> On 31 Jul 2018, at 13:43, Kai Koehne <Kai.Koehne at qt.io> wrote:
> 
> I can think of 3 approaches to tackle this:
> 
> a) Prefix all symbols with 'q', like we do for exported symbols.
> 
> This requires some bigger patches. See e.g. https://codereview.qt-project.org/#/c/235631/ for renaming all logging categories to 'qlc*' in qtbase.
> 
> b) Advise people to always configure static Qt in a namespace (-qtnamespace).
> 
> This should fix it for symbols at least in our own code. Maybe we should make it even the default for static builds in Qt 6?
> 
> c) Look into tricks like 'objcopy --localize-hidden' to hide symbols.
> 
> This would probably require some major hackery in the build system. No idea whether this is supported also on other platforms, and how hard it would be to pull it off. I'm not volunteering 😉
> 
> I guess I'm not the first one who looks into this, so I'm happy to hear advice/opinions 😊

a) seems very limiting on our own work, I prefer b) or c)

Tor Arne  


More information about the Development mailing list