[PyQt] Build fails with PyQt-commercial-5.5.1-snapshot-dd00723a6712

Phil Thompson phil at riverbankcomputing.com
Tue Sep 22 00:11:38 BST 2015


On 21 Sep 2015, at 11:47 pm, Glenn Ramsey <gr at componic.co.nz> wrote:
> 
> Hi Phil,
> 
> When attempting to build the current snapshot I get this failure:
> 
>        link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /DLL /SUBSYSTEM:WIND
> OWS /OUT:release\QtNfc.dll @C:\Users\glenn\AppData\Local\Temp\nm40B6.tmp
> Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: __thiscall QList<class QNdefRec
> ord>::QList<class QNdefRecord>(class QList<class QNdefRecord> const &)" (??0?$QL
> ist at VQNdefRecord@@@@QAE at ABV0@@Z) already defined in sipQtNfcQList0100QNdefRecord
> .obj
> Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: __thiscall QList<class QNdefRec
> ord>::~QList<class QNdefRecord>(void)" (??1?$QList at VQNdefRecord@@@@QAE at XZ) alrea
> dy defined in sipQtNfcQList0100QNdefRecord.obj
> Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: class QList<class QNdefRecord>
> & __thiscall QList<class QNdefRecord>::operator=(class QList<class QNdefRecord>
> const &)" (??4?$QList at VQNdefRecord@@@@QAEAAV0 at ABV0@@Z) already defined in sipQtN
> fcQList0100QNdefRecord.obj
> Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: class QNdefRecord const & __thi
> scall QList<class QNdefRecord>::at(int)const " (?at@?$QList at VQNdefRecord@@@@QBEA
> BVQNdefRecord@@H at Z) already defined in sipQtNfcQList0100QNdefRecord.obj
> Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: void __thiscall QList<class QNd
> efRecord>::append(class QNdefRecord const &)" (?append@?$QList at VQNdefRecord@@@@Q
> AEXABVQNdefRecord@@@Z) already defined in sipQtNfcQList0100QNdefRecord.obj
>   Creating library release\QtNfc.lib and object release\QtNfc.exp
> release\QtNfc.dll : fatal error LNK1169: one or more multiply defined symbols fo
> und
> 
> This is using the tool chain from VS2013.

I've seen this myself and cannot work out what the problem is.  Assuming you don't need to use the QtNfc module the easiest thing to do is to disable it before running configure.py. One way to disable it is to rename the QtNfc directory containing the .h files in your Qt installation to something like QtNfc-disabled.

I will add a flag to configure.py to specifically disable a module.

Phil


More information about the PyQt mailing list