如何在 Linux 上编译 QScintilla 和 Eric6?
How do I compile QScintilla and Eric6 on Linux?
首先,我按照以下步骤安装 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
headers 被报告为丢失,以及为什么您稍后会收到 undefined symbol
错误。
QScintilla 使用功能文件来控制 compile-time 配置,需要修补其源代码以获得 Qt5 的良好构建。
因此,首先解压缩一组新的源代码,然后进行以下更改:
designer-Qt4Qt5/designer.pro:
TARGET = qscintillaplugin_qt5
Qt4Qt5/features/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
对我来说不太适用 - 假设我错过了一些东西,或者这是特定于环境的东西。
无论如何....我按照 ekhumoro 的建议做了 除了没有编辑这三个文件: (XXX)
- designer-Qt4Qt5/designer.pro
- Qt4Qt5/features/qscintilla2.prf
- Qt4Qt5/qscintilla.pro
编辑它们的理由似乎很合理,但最终 Eric 安装失败:
Sorry, please install QScintilla2 and its PyQt5/PyQt4 wrapper.
Error:
dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PyQt5/Qsci.so, 2):
Library not loaded: libqscintilla2_qt5.12.dylib
^^^^
Referenced from: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PyQt5/Qsci.so
Reason: image not found
注意标有 ^^^^ 的 _qt5 - 理论上应该可以解决,但对我来说没有。我尝试了各种方法都无济于事。可能是我对某些设置的无知。
我希望 ekhumoro 的说明能够工作,因为建议对 3 个文件进行编辑 - 请参阅 (XXX) - 配置 Make 以使用 _qt5 创建库。
我尝试了很多东西 - 符号链接等等,但在一天结束时,遗漏 (XXX) 允许一切正常进行。
所以 - 总之,*如果您不需要让 QScintilla 与 PyQt4 和 PyQt5* 同时工作,请执行 ekhumoro建议减去 (XXX) 处的内容 - 这样,Eric 应该可以毫无问题地安装。
注意上面的信息:它可能会破坏 Qt4 的 QScintilla 库
我想最重要的是 --pyqt=PyQt5
,这导致使用 sip/qscimod5.sip
而不是 sip/qscimod4.sip
。不同之处在于它包含 %Import QtWidgets/QtWidgetsmod.sip
行,这对于 QAbstractScrollArea
.
是必不可少的
首先,我按照以下步骤安装 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
headers 被报告为丢失,以及为什么您稍后会收到 undefined symbol
错误。
QScintilla 使用功能文件来控制 compile-time 配置,需要修补其源代码以获得 Qt5 的良好构建。
因此,首先解压缩一组新的源代码,然后进行以下更改:
designer-Qt4Qt5/designer.pro:
TARGET = qscintillaplugin_qt5
Qt4Qt5/features/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
无论如何....我按照 ekhumoro 的建议做了 除了没有编辑这三个文件: (XXX)
- designer-Qt4Qt5/designer.pro
- Qt4Qt5/features/qscintilla2.prf
- Qt4Qt5/qscintilla.pro
编辑它们的理由似乎很合理,但最终 Eric 安装失败:
Sorry, please install QScintilla2 and its PyQt5/PyQt4 wrapper.
Error:
dlopen(/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PyQt5/Qsci.so, 2):
Library not loaded: libqscintilla2_qt5.12.dylib
^^^^
Referenced from: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/PyQt5/Qsci.so
Reason: image not found
注意标有 ^^^^ 的 _qt5 - 理论上应该可以解决,但对我来说没有。我尝试了各种方法都无济于事。可能是我对某些设置的无知。
我希望 ekhumoro 的说明能够工作,因为建议对 3 个文件进行编辑 - 请参阅 (XXX) - 配置 Make 以使用 _qt5 创建库。 我尝试了很多东西 - 符号链接等等,但在一天结束时,遗漏 (XXX) 允许一切正常进行。
所以 - 总之,*如果您不需要让 QScintilla 与 PyQt4 和 PyQt5* 同时工作,请执行 ekhumoro建议减去 (XXX) 处的内容 - 这样,Eric 应该可以毫无问题地安装。
注意上面的信息:它可能会破坏 Qt4 的 QScintilla 库
我想最重要的是 --pyqt=PyQt5
,这导致使用 sip/qscimod5.sip
而不是 sip/qscimod4.sip
。不同之处在于它包含 %Import QtWidgets/QtWidgetsmod.sip
行,这对于 QAbstractScrollArea
.