如何在Linux上编译QScintilla和Eric6?

首先,我按照以下步骤安装QScintilla:

1:

cd Qt4Qt5
qmake qscintilla.pro
sudo make
make install

2:

cd ../designer-Qt4Qt5
qmake designer.pro
sudo make
sudo make install

3:

cd ../Python
python3 configure.py --pyqt=PyQt5
sudo make

在这里我遇到了问题:

QAbstractScrollArea: No such file or directory 

和问题:

qprinter.h: No such file or directory

但我终于通过手动添加所需文件解决了这些问题.

继续:

sudo make install

4:

然后我输入以下命令安装eric6:

sudo python3 install.py

但我得到了:

Checking dependencies

Python Version: 3.4.0

Found PyQt5

Sorry,please install QScintilla2 and
its PyQt5/PyQt4 wrapper.

Error: /usr/lib/python3/dist-packages/PyQt5/Qsci.so: undefined symbol: _ZTI13QsciScintilla

最佳答案
主要问题是你是连接Qt4而不是Qt5.这就是为什么QAbstractScrollArea和QPrinter标头被报告为缺失的原因,以及为什么以后会得到未定义的符号错误.

QScintilla使用功能文件来控制编译时配置,需要修补其源代码以获得Qt5的良好构建.

因此,首先解压缩一组新的源,然后进行以下更改:

设计师Qt4Qt5 / designer.pro:

TARGET = qscintillaplugin_qt5

Qt4Qt5 /功能/ qscintilla2.prf:

        } else {
            LIBS += -lqscintilla2_qt5
        }
    }
} else {
    LIBS += -lqscintilla2_qt5
}

Qt4Qt5 / qscintilla.pro:

TARGET = qscintilla2_qt5
...
features.path = $$[QT_INSTALL_ARCHDATA]/mkspecs/features

这将确保您获得Qt5的独立qscintilla库.

完成后,请执行以下步骤(作为普通用户):

cd 'path/to/src/Qt4Qt5'

# this is essential for correct linking
export QMAKEFEATURES="$PWD/features"

# make sure you use the right qmake!
qmake-qt5 'qscintilla.pro'
make

# plugin for Qt5 Designer
cd '../designer-Qt4Qt5'
qmake-qt5 'designer.pro' INCLUDEPATH+='../Qt4Qt5' QMAKE_LIBDIR+='../Qt4Qt5'
make

# Python bindings
cd '../Python'
python3 'configure.py' --pyqt='PyQt5' --qmake='/usr/bin/qmake-qt5' \
        --qsci-incdir='../Qt4Qt5' --qsci-libdir='../Qt4Qt5'
make

如果成功,您可以安装所有内容(以root用户身份):

cd 'path/to/src/Qt4Qt5'
make install

cd '../designer-Qt4Qt5'
make install

cd '../Python'
make install

相关文章

insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...