[PySide] The problem of bulid Pyside on Windows with MinGW

Peng Feixiang pengfx at yeah.net
Sun May 5 10:10:18 CEST 2013


Hi,all


I checked http://qt-project.org/wiki/BuildingPySideon_Windows and only Visual Studio is used to build PySide on Windows. But for some reason I have to use MinGW to build PySide.

I'm trying to build PySide on Windows with MinGW, with the following command:

c:\Python27\python.exe setup.py bdist_wininst --make-spec=mingw --qmake=c:\Qt\qt-4.8.4-mingw-x32\bin\qmake.exe

shiboken build should be OK, but QtCore failed with error:

[ 18%] Building CXX object PySide/QtCore/CMakeFiles/QtCore.dir/PySide/QtCore/point_wrapper.cpp.obj
g++.exe: D:\binding_project\PySide-1.1.2\pyside_build\py2.7-qt4.8.4-32bit-release\pyside\PySide\QtCore\PySide\QtCore\point_wrapper.cpp: No such file or directory
g++.exe: no input files
mingw32-make[2]: *** [PySide/QtCore/CMakeFiles/QtCore.dir/PySide/QtCore/point_wrapper.cpp.obj] Error 1
mingw32-make[1]: *** [PySide/QtCore/CMakeFiles/QtCore.dir/all] Error 2
mingw32-make: *** [all] Error 2


the error is due to generator warning:

[  3%] 
Running generator for QtCore...
...
type 'POINT' is specified in typesystem, but not defined. This could potentially lead to compilation errors.


Then I tried to solve this problem. I found that:

Core/CMakeList.txt includes the following 5 lines

    if(ENABLE_WIN)
        set(SPECIFIC_OS_FILES
        ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/msg_wrapper.cpp
        ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtCore/point_wrapper.cpp
    )


And in QtCore/typesystemcorewin.xml,with the following 6 lines

    <value-type name="POINT">
        <include file-name="wtypes.h" location="global"/>
    </value-type>
    <value-type name="MSG">
        <include file-name="wtypes.h" location="global"/>
    </value-type>


I think file "wtypes.h" may become the key point.

Then I searched the whole windows file system using kwyword “wtypes”, and located “wtypes.h” under "mingw/include/" .I opened this file, but found nothing related to "POINT". In another windows OS with VS2008 in it, I did the search again, "WTypes.h" is located under "Microsoft SDKs\Windows\v6.0A\Include". I opened this file, and found the defination of POINT and MSG.

I feel that the lack of defination in MinGW leads to the problem"type 'POINT' is specified in typesystem, but not defined". Then I found the defination of POINT under "mingw/include/windef.h"(the defination of POINT under "mingw/include/winuser.h"), I changed the file "QtCore/typesystemcorewin.xml":

REPLACE

    <value-type name="POINT">
        <include file-name="wtypes.h" location="global"/> 
    </value-type>


WITH

    <value-type name="POINT">
        <include file-name="windef.h" location="global"/> 
    </value-type>


Build again, but same problem occurred --"type 'POINT' is specified in typesystem, but not defined. "

I was stuck here. Can someone help me?

Many thanks.



Peng Feixiang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20130505/f394bbb4/attachment.html>


More information about the PySide mailing list