linux鼠标热插拔支持,QT5.6.0 鼠标热插拔支持

其实在官网上有介绍到

Mouse

The mouse cursor shows up whenever QT_QPA_EGLFS_HIDECURSOR (for eglfs) or QT_QPA_FB_HIDECURSOR (for linuxfb) is not set and Qt's libudev-based device discovery reports that at least one mouse is available. When libudev support is not present, the mouse cursor always show up unless explicitly disabled via the environment variable.

Hot plugging is supported, but only if Qt was configured with libudev support (that is, if the libudev development headers are present in the sysroot at configure time). This allows connecting or disconnecting an input device while the application is running.

说是说的比较清楚了,在libudev被支持的情况下热插拔是支持的。同时也说了,在QT配置时,需要在sysroot下有libudev的头文件。

刚看完时没有看清楚这几句话,就在configure --help下去找libudev、udev,都没找到选项。然后就直接到QTSRCROOT下的configure里找,也没有。

找错了,就到QTSRCROOT/qtbase下的configure下找,还真有。

libudev)

1863         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then

1864             CFG_LIBUDEV="$VAL"

1865         else

1866             UNKNOWN_OPT=yes

1867         fi

1868         ;;

if [ "$CFG_LIBUDEV" != "no" ]; then

5377     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then

5378         QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`

5379         QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`

5380         QMAKE_CFLAGS_LIBUDEV=`$PKG_CONFIG --cflags libudev 2>/dev/null`

5381         QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"

5382         QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"

5383     fi

5384     if compileTest unix/libudev "libudev" $QMAKE_CFLAGS_LIBUDEV $QMAKE_LIBS_LIBUDEV; then

5385         CFG_LIBUDEV=yes

5386         QT_CONFIG="$QT_CONFIG libudev"

5387     elif [ "$CFG_LIBUDEV" = "yes" ]; then

5388         echo "The libudev functionality test failed!"

5389         [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -pkg-config?"

5390         exit 1

5391     else

5392         CFG_LIBUDEV=no

5393     fi

5394 fi

......

没有配置项,就是直接自动检测的。于是查看配置输出

libudev auto-detection... ()

arm-linux-g++ -c -pipe -O2 -Wall -W -fPIC  -I/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev -I. -I/home/ubuntu/app/tslib/include -I/home/ubuntu/app/qt-5.6.0/qtbase/mkspecs/linux-arm-gnueabi-g++ -o libudev.o /home/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp

/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp:34:21: error: libudev.h: No such file or directory

/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp: In function ‘int main()’:

/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp:38: error: ‘udev’ was not declared in this scope

/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp:38: error: ‘u’ was not declared in this scope

/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp:38: error: ‘udev_new’ was not declared in this scope

/home/ubuntu/app/qt-5.6.0/qtbase/config.tests/unix/libudev/libudev.cpp:39: error: ‘udev_unref’ was not declared in this scope

make: *** [libudev.o] Error 1

libudev disabled.

需要libudev.h头文件。

-libinput -mtdev -evdev

得移植udev,然后最好把libinput(依赖于mtdev、Libudev、evdev、[Libwacom])也移植了

libwacom依赖于gudev,而我配置libinput是disable了gudev,所以要disable掉libwacom,但是:(这个libinput啊)

--enable-libwacom       Use libwacom for tablet identification

(default=enabled)

默认是enable的,却只提供--enable,唉!

Libinput需要选择1.1.x,1.2.x使用的是99标准,gcc版本在4.6.0以下,static_assert是没有的,最后链接不过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值