Discussion:
[PyQt] Build fails with PyQt-commercial-5.5.1-snapshot-dd00723a6712
Glenn Ramsey
2015-09-21 22:47:16 UTC
Permalink
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
***@VQNdefRecord@@@@***@ABV0@@Z) already defined in sipQtNfcQList0100QNdefRecord
.obj
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: __thiscall QList<class QNdefRec
ord>::~QList<class QNdefRecord>(void)" (??1?$***@VQNdefRecord@@@@***@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?$***@VQNdefRecord@@@@***@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@?$***@VQNdefRecord@@@@QBEA
BVQNdefRecord@@***@Z) already defined in sipQtNfcQList0100QNdefRecord.obj
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: void __thiscall QList<class QNd
efRecord>::append(class QNdefRecord const &)" (?append@?$***@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.

Glenn
_______________________________________________
PyQt mailing list ***@riverbankcomputing.com
https://www.riverbankcomputing.com/mailma
Phil Thompson
2015-09-21 23:11:38 UTC
Permalink
Post by Glenn Ramsey
Hi Phil,
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /DLL /SUBSYSTEM:WIND
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: __thiscall QList<class QNdefRec
ord>::QList<class QNdefRecord>(class QList<class QNdefRecord> const &)" (??0?$QL
.obj
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: __thiscall QList<class QNdefRec
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>
fcQList0100QNdefRecord.obj
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: class QNdefRecord const & __thi
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: void __thiscall QList<class QNd
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
_______________________________________________
PyQt mailing list ***@riverbankcomputing.com
https://www.riverbankcomputing.com/mailm
Glenn Ramsey
2015-09-22 01:32:12 UTC
Permalink
Post by Phil Thompson
Post by Glenn Ramsey
Hi Phil,
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /DLL /SUBSYSTEM:WIND
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: __thiscall QList<class
QNdefRec ord>::QList<class QNdefRecord>(class QList<class QNdefRecord>
"public: __thiscall QList<class QNdefRec ord>::~QList<class
"public: class QList<class QNdefRecord> & __thiscall QList<class
QNdefRecord>::operator=(class QList<class QNdefRecord> const &)"
class QNdefRecord const & __thi scall QList<class
Qt5Nfc.lib(Qt5Nfc.dll) : error LNK2005: "public: void __thiscall
QList<class QNd efRecord>::append(class QNdefRecord const &)"
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.
Thanks Phil, that works around it for me.

In case anyone else comes across this, the directory I renamed was
<QT_SRC_DIR>/qtconnectivity/include/QtNfc

Glenn
_______________________________________________
PyQt mailing list ***@riverbankcomputing.com
https://www.riverbankcomputing.

Loading...