这个问题是由于没有确定默认的qt所导致的。在我的ArchLinux上,同时安装了qt4和qt5,这时
/etc/xdg/qtchooser
目录的内容是这样的,
% ls -l total 16 -rw-r--r-- 1 root root 26 Dec 17 19:16 3.conf -rw-r--r-- 1 root root 26 Dec 17 19:16 4.conf -rw-r--r-- 1 root root 25 Dec 17 19:16 5.conf lrwxrwxrwx 1 root root 25 Dec 17 19:16 default.conf -> /etc/xdg/qtchooser/5.conf
可以看到其实默认的是qt5,但如果分别
% which qmake qmake-qt4 qmake-qt5 /usr/bin/qmake /usr/bin/qmake-qt4 /usr/bin/qmake-qt5
看起来是很正常是不是?你一定以为qmake是指向qmake-qt5的对吧?事实是这样的。
% ls -l qmake lrwxrwxrwx 1 root root 9 Dec 17 19:16 qmake -> qtchooser*
所以默认路径下qmake调用的其实是qtchooser,但实际上运行qmake和qtchooser的输出又不一样,这样我是不能理解了。
言归正传。
我的解决方案是这样的,
sudo rm /usr/bin/qmake sudo ln -s /usr/bin/qmake /usr/lib/qt/bin/qmake-qt5
这样一来就解决了。
成功不必在我,而功力必不唐捐