是双飞燕G系列鼠标的驱动。
有装usb开发包
代码: 全选
$ apt-get install libudev-dev libusb-1.0-0-dev
$ pkg-config --cflags libusb-1.0
-I/usr/include/libusb-1.0
$ pkg-config --libs libusb-1.0
-lusb-1.0
$ ldconfig.real -v | grep libusb
libusb-1.0.so.0 -> libusb-1.0.so.0.1.0
libusb-0.1.so.4 -> libusb-0.1.so.4.4.4
libusbmuxd.so.1 -> libusbmuxd.so.1.0.7
$ ls -la /usr/lib/i386-linux-gnu/libusb*
-rw-r--r-- 1 root root 70808 Apr 20 2012 /usr/lib/i386-linux-gnu/libusb-1.0.a
lrwxrwxrwx 1 root root 39 Apr 20 2012 /usr/lib/i386-linux-gnu/libusb-1.0.so -> /lib/i386-linux-gnu/libusb-1.0.so.0.1.0
lrwxrwxrwx 1 root root 35 May 25 2012 /usr/lib/i386-linux-gnu/libusb-1.0.so.0 -> /lib/i386-linux-gnu/libusb-1.0.so.0
$ ls -la /lib/i386-linux-gnu/libusb*
lrwxrwxrwx 1 root root 19 May 25 2012 /lib/i386-linux-gnu/libusb-0.1.so.4 -> libusb-0.1.so.4.4.4
-rw-r--r-- 1 root root 30072 Jan 8 2012 /lib/i386-linux-gnu/libusb-0.1.so.4.4.4
lrwxrwxrwx 1 root root 19 May 25 2012 /lib/i386-linux-gnu/libusb-1.0.so.0 -> libusb-1.0.so.0.1.0
-rw-r--r-- 1 root root 58912 Apr 20 2012 /lib/i386-linux-gnu/libusb-1.0.so.0.1.0
代码: 全选
$ cd ../a4_tool && make
g++ -c -fexceptions `pkg-config --cflags libusb-1.0` -Wall -O2 -I../include -c -o obj/Release/main.o main.cpp
g++ `pkg-config --libs libusb-1.0` -s -o a4_tool obj/Release/main.o ../libgmouse/libgmouse.a
../libgmouse/libgmouse.a(system_a4.o): In function `a4_open_device()':
system_a4.cpp:(.text+0x26): undefined reference to `libusb_init'
代码: 全选
$ less ../libgmouse/system_a4.cpp
#include "system_a4.h"
#include "mouse_memory.h"
#include "pairing.h"
#include <unistd.h>
#include <stdio.h>
$ less ../libgmouse/system_a4.h
#ifndef SYSTEM_A4_H_INCLUDED
#define SYSTEM_A4_H_INCLUDED
#include <libusb-1.0/libusb.h>
#include <stdlib.h>
$ cat /usr/include/libusb-1.0/libusb.h |grep libusb_init
* Sessions are created by libusb_init() and destroyed through libusb_exit().
int LIBUSB_CALL libusb_init(libusb_context **ctx);
$ ar t ../libgmouse/libgmouse.a
control_a4.o
dpis.o
mouse_memory.o
pairing.o
system_a4.o
$ nm -s ../libgmouse/libgmouse.a | grep libusb
system_a4.o:
U libusb_close
U libusb_control_transfer
U libusb_exit
U libusb_init
U libusb_open_device_with_vid_pid
$ nm -s /usr/lib/i386-linux-gnu/libusb-1.0.a | grep libusb_init
libusb_init in libusb_1_0_la-core.o
00000620 T libusb_init