[PyQt] Duplicate symbols building PyQt5 against Qt5.1 on OS X 10.7.5

Phil Thompson phil at riverbankcomputing.com
Sun Jul 7 18:13:55 BST 2013


On Sun, 7 Jul 2013 00:13:24 -0700, Chris Knight <chris at dsl-only.net>
wrote:
> Hello,
> 
> I had PyQt5 working with Qt5.0.2 and Python 2.7but decided to dump my
> Qt5.0.2 and install the new Qt5.1.  My environment is mac OS X 10.7.5
which
> is the latest version of Lion.  
> 
> Qt5.1 installed without issues.
> SIP installed without issues.
> 
> Running python configure.py for PyQt-gpl-5.0 failed with an error,
"Error:
> Unable to create the C++ code."  The sources were in a folder on my
desktop
> as they were last time I installed PyQt5 against Qt5.0.2 albeit without
> this error. I Googled and found that spaces  in a path have caused this
> error in the past and by moving the PyQt source directory to my user
> directory solved this issue and I was then able to run python
configure.py
> without further errors or warnings.
> 
> I ran "make clean" and then ran "make" .  I had a few warnings that
> various Qt directories could not be found similar to "warning: directory
> not found for option '-F/Users/chris/Qt//5.1.0/clang_64/qttools/lib'" it
> turns out this is a known bug with qmake, QTBUG-28336, that hadn't shown
up
> until more modularization of Qt for Qt5.1.  But long after the warnings
and
> it was starting to look like it was getting close to finishing I got a
list
> of eight duplicate symbols and the following error. 
> 
> "ld: 8 duplicate symbols for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> make[1]: *** [pylupdate5] Error 1
> make: *** [sub-pylupdate-make_first-ordered] Error 2""
> 
> I was able to find a work around for the warnings by creating symlinks
to
> the actual directories.  Doing this though did not solve the duplicate
> symbols problem.  
> 
> Running "make clean" and "make --silent"  results in the following,
> 
> "Makefile:1481: warning: overriding commands for target
`moc_translator.o'
> Makefile:989: warning: ignoring old commands for target
`moc_translator.o'
> duplicate symbol
> __ZN10Translator18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv
in:
>     moc_translator.o
> duplicate symbol __ZNK10Translator10metaObjectEv in:
>     moc_translator.o
> duplicate symbol __ZN10Translator16staticMetaObjectE in:
>     moc_translator.o
> duplicate symbol __ZN10Translator11qt_metacastEPKc in:
>     moc_translator.o
> duplicate symbol __ZN10Translator11qt_metacallEN11QMetaObject4CallEiPPv
in:
>     moc_translator.o
> duplicate symbol __ZTV10Translator in:
>     moc_translator.o
> duplicate symbol __ZTI10Translator in:
>     moc_translator.o
> duplicate symbol __ZTS10Translator in:
>     moc_translator.o
> ld: 8 duplicate symbols for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> make[1]: *** [pylupdate5] Error 1
> make: *** [sub-pylupdate-make_first-ordered] Error 2"
> 
> So there were two warnings that were probably there prior and I missed
> them among all the echoed commands and are clearly connected with the
> duplicate symbols.  What I have not been able to figure out though is
> exactly why this is happing and how to fix it.  I have not manually
edited
> any of the PyQt files and I would think "make clean" should have taken
care
> of duplicates from my prior install of PyQt5 left over in the sources
> directory.  
> 
> I'm hoping that someone with more knowledge and experience can point me
in
> the right direction for solving this.
> 
> Thank you kindly,
> ~Chris

I can't reproduce this (at least with 10.8.4). I can only suggest you make
sure you have a clean source tree.

Phil


More information about the PyQt mailing list