安装了 Qt 5.3,Notepadqq 仍然找到 5.2.1?

安装了 Qt 5.3,Notepadqq 仍然找到 5.2.1?

我正在运行 Ubuntu 14.04 LTS,64 位。我正在尝试安装 Notepadqq,这是 Notepad++ 从 Windows 到 Linux 的移植版。我了解 Vim 和 Emacs,但我习惯使用 Notepad++,而且我喜欢它。我使用以下网页安装了 Notepad:

http://notepadqq.altervista.org/wp/

当我运行它时,会弹出一个对话框,抱怨我的机器上有一个旧版本的 Qt,Qt 5.2.1。然后我下载并安装了Qt 5.3.0使用以下说明:

wget http://download.qt-project.org/official_releases/qt/5.3/5.3.0/qt-opensource-linux-x64-5.3.0.run

chmod +x qt-opensource-linux-x64-5.3.0.run

./qt-opensource-linux-x64-5.3.0.run

从此网页:

http://www.sysads.co.uk/2014/05/install-qt-5-3-ubuntu-14-04/

安装过程很顺利,没有报告任何错误。但是,当我运行 Notepadqq 时,我仍然会收到有关 Qt 的对话框。我很担心卸载Qt 5.2.1因为我敢打赌还有很多其他代码依赖于该库?所以这是小路环境变量怎么解决?

轶事:我安装的最后一个 Linux 机器是 OpenSuse 9.x,那是很久以前的事情了。Linux 确实已经取得了长足的进步,Ubuntu 14.04 也很棒。感谢 Ubuntu 团队。

答案1

如果您的发行版不提供 Qt 5.3,Notepadqq 预计它位于您的主目录中的 ~/Qt/。

因此,当您运行时./qt-opensource-linux-x64-5.3.0.run,它会询问您要在哪里安装 Qt,请使用路径/home/<your_username>/Qt。符号链接也可以工作。

顺便说一句,您可能想使用当前最新的 Qt 版本(5.3.2):

wget http://download.qt-project.org/official_releases/qt/5.3/5.3.2/qt-opensource-linux-x64-5.3.2.run
chmod +x qt-opensource-linux-x64-5.3.2.run
./qt-opensource-linux-x64-5.3.2.run

如果我在 ~/Qt 中已经有另一个版本的 Qt 怎么办?

假设您已经在 ~/Qt 中安装了旧版本的 Qt:Notepadqq 将忽略它。

现在,为了让 Qt5.3 可用于 Notepadqq,您可以将其安装在您选择的目录中(比如说 ~/Qt53)。然后创建指向内部“5.3”文件夹的符号链接,如下所示:

ln -dsr ~/Qt53/5.3 ~/Qt

两个版本的 Qt 可以共存,notepadqq 也可以找到以下文件:~/Qt53/5.3

答案2

与此问题相关:如果您安装了最新的 Qt 5.6,则需要修改 /usr/bin 下的 notepadqq 文件。请记住使用超级用户权限编辑 notepadqq 文件,否则您将收到“拒绝访问”的提示。

这是我的配置文件编辑后的样子:

#!/bin/sh
SCRIPTPATH="$(dirname "$(readlink -f "$0")")"

if [ `getconf LONG_BIT` = "64" ]
then
    GCC_DIR=gcc_64
else
    GCC_DIR=gcc
fi

OPT_QT56=/opt/Qt/5.6/$GCC_DIR/lib
OPT_QT55=/opt/Qt/5.5/$GCC_DIR/lib
OPT_QT54=/opt/Qt/5.4/$GCC_DIR/lib
OPT_QT53=/opt/Qt/5.3/$GCC_DIR/lib
PERSONAL_QT56=~/Qt/5.6/$GCC_DIR/lib
PERSONAL_QT55=~/Qt/5.5/$GCC_DIR/lib
PERSONAL_QT54=~/Qt/5.4/$GCC_DIR/lib
PERSONAL_QT53=~/Qt/5.3/$GCC_DIR/lib

export LD_LIBRARY_PATH="$OPT_QT56:$PERSONAL_QT56:$OPT_QT55:$PERSONAL_QT55:$OPT_QT54:$PERSONAL_QT54:$OPT_QT53:$PERSONAL_QT53:${LD_LIBRARY_PATH}"

if [ -f "$SCRIPTPATH"/../lib/notepadqq/notepadqq-bin ]; then
    # Nqq is installed: this script is in bin/
    exec "$SCRIPTPATH"/../lib/notepadqq/notepadqq-bin "$@"
elif [ -f "$SCRIPTPATH"/../lib/notepadqq-bin ]; then
    # Nqq is not installed: this script is in bin/
    exec "$SCRIPTPATH"/../lib/notepadqq-bin "$@"
else
    # Nqq is installed via deb package:
    # this script is in the same directory as the binary file.
    exec "$SCRIPTPATH"/notepadqq-bin "$@"
fi

答案3

我已经安装了最新的 Qt 5.10.1http://download.qt.io/official_releases/qt/5.10/5.10.1/到本地文件夹 ~/Qt5.10.1,然后在 ~/ 文件夹中创建链接, ln -dsr ~/Qt5.10.1/5.10.1 ~/Qt 但 notepadqq 仍然抱怨错误的 qt 版本 = 5.2.1。然后我更改了文件 /usr/bin/notepadqq,如下所示(因为脚本中没有版本 5.10.1 的选项):

#!/bin/sh
SCRIPTPATH="$(dirname "$(readlink -f "$0")")"

if [ `getconf LONG_BIT` = "64" ]
then
    GCC_DIR=gcc_64
else
    GCC_DIR=gcc
fi

OPT_QT5101=/opt/Qt/$GCC_DIR/lib
OPT_QT59=/opt/Qt/5.9/$GCC_DIR/lib
OPT_QT58=/opt/Qt/5.8/$GCC_DIR/lib
OPT_QT57=/opt/Qt/5.7/$GCC_DIR/lib
OPT_QT56=/opt/Qt/5.6/$GCC_DIR/lib
OPT_QT55=/opt/Qt/5.5/$GCC_DIR/lib
OPT_QT54=/opt/Qt/5.4/$GCC_DIR/lib
OPT_QT53=/opt/Qt/5.3/$GCC_DIR/lib
PERSONAL_QT5101=~/Qt/$GCC_DIR/lib
PERSONAL_QT59=~/Qt/5.9/$GCC_DIR/lib
PERSONAL_QT58=~/Qt/5.8/$GCC_DIR/lib
PERSONAL_QT57=~/Qt/5.7/$GCC_DIR/lib
PERSONAL_QT56=~/Qt/5.6/$GCC_DIR/lib
PERSONAL_QT55=~/Qt/5.5/$GCC_DIR/lib
PERSONAL_QT54=~/Qt/5.4/$GCC_DIR/lib
PERSONAL_QT53=~/Qt/5.3/$GCC_DIR/lib

export LD_LIBRARY_PATH="$OPT_QT5101:$PERSONAL_QT5101:$OPT_QT59:$PERSONAL_QT59:$OPT_QT58:$PERSONAL_QT58:$OPT_QT57:$PERSONAL_QT57:$OPT_QT56:$PERSONAL_QT56:$OPT_QT55:$PERSONAL_QT55:$OPT_QT54:$PERSONAL_QT54:$OPT_QT53:$PERSONAL_QT53:${LD_LIBRARY_PATH}
...skipped...

只有这样,notepadqq 才能正常工作,而不会对 qt 版本提出任何抱怨。

相关内容