在我的 Gentoo 系统上,我从来没有遇到过这个问题,并且我moc
像在终端中运行任何其他命令一样运行。我最近切换到 Fedora 15/16 并注意到运行moc
不起作用。我明白了bash: moc: command not found...
。相反,我必须给出它的完整路径,/usr/lib64/qt4/bin/moc
.
我想知道为什么 Fedora 的人没有设置这个,所以调用
moc
就可以在不给出完整路径的情况下工作(或者,也许我做了一些破坏?)由于我对非 Gentoo 系统非常陌生,我想知道一种通用的调用方式,
moc
以便它可以在任何 *nix 系统上工作。
答案1
为了能够在不指定完整路径的情况下运行应用程序,安装可执行文件的目录必须位于$PATH
变量中。您可以$PATH
使用 来检查其中的内容echo $PATH
。要修改,$PATH
您可以使用export PATH=$PATH:/usr/lib64/qt4/bin/
.之后您就可以使用刚刚moc
启动它。要使更改永久化,您可以将该行放入您的~/.bashrc
文件中。
答案2
兼容性 我来宾,就我而言,我在使用 Debian Jessie 的笔记本电脑中遇到了这个问题,正确的做法是:
aptitude install qt4-qtconfig
用户@主机$ moc
moc:无法执行'/usr/lib/x86_64-linux-gnu/qt4/bin/moc':没有这样的文件或目录
根据 /usr/share/doc/moc/README.Debian 我们需要运行:
user@host$mocp
除此之外,您还可以使用主题并在 >.moc 目录中创建自己的配置文件,您可以在 .bashrc 中使用别名
alias moc='mocp -T yourtheme '
答案3
1)我想知道为什么 Fedora 的人没有设置这个,所以调用 moc 就可以工作而无需给出其完整路径(或者,也许我做了一些破坏?)
这应该是为了向后兼容 Qt3。
2)由于我对非Gentoo系统非常陌生,我想知道一种调用moc的通用方法,以便它可以在任何*nix系统上工作。
您可以使用pkg-config
:
pkg-config --variable=moc_location QtCore