PythonQt在Mac OS X - Yosemite成功编译运行

        PythonQt实现了C++对象和Python脚本的双向调用,是实现Qt与Python互操做和嵌入式脚本的重要方式。python

        PythonQt的原始工程在:http://pythonqt.sourceforge.net/。这个项目来自于Mevis,一个功能强大的医疗图像处理软件。多是考虑到产品级软件的稳定性,里面用的是Qt4.6.2,python用的2.6。而如今最新的Qt主流版本是5.4,Python已是3.4.2了。下面咱们将在最新的Mac OS上进行这些最新版本的编译,请扶好坐稳!!!函数

        Yosemite没有Python3的缺省安装,直接到www.python.org去下最新的版本,安装完毕。ui

        而后到http://www.qt-project.org下载Qt5.4的对应版本,安装完毕。spa

        如今,打开Qt Creator,载入PythonQt.pro项目,进行配置,选择Desktop XXX Clang_64,等待....net

        结果等来了的是一大堆警告和几个莫名其妙的错误,反正就是不成功...code

        开始折腾,卸载...安装...设置参数...环境变量...没有任何效果。        
对象

        仔细分析了一下错误信息,发现里面都是报的“protected...”信息。而后,找到原始的Qt文件,把这些成员变量(函数)的前面都加上public:,再次编译,经过。get

        以下所示:
编译器

//Add "public" by openthings. This got error by PythonQt,change to public member.
public:
    enum Extension {
        UserExtension = 0x80000000
    };

        可是又出现新的相似错误,如法炮制。所有修改完后,再编译,经过,运行,经过,喔耶!!!qt

        由于以前一样的代码在Linux没有任何问题,基本搞清楚问题的缘由所在:在gcc上没有检查对于protected的enum变量没有限制外部成员访问,而clang进行了严格的限制,致使编译不经过。

        如今,把Qt的代码的enum的成员须要外部访问的改成public修饰符,就所有OK了。可是由于改的是Qt的代码,须要备份起来,要不之后一更新,又会出问题了。

        对clang编译器(这个作正确了可是闯了祸的家伙!)进一步感兴趣的能够参考这里:http://www.tuicool.com/articles/u6jMb2N

相关文章
相关标签/搜索