(已解决)[mouse][driver]有谁编译过Marisa-Chan 的 init-gmouse?

编译打包和其他
回复
tank_dr
帖子: 13
注册时间: 2012-05-26 8:31

(已解决)[mouse][driver]有谁编译过Marisa-Chan 的 init-gmouse?

#1

帖子 tank_dr » 2013-05-22 11:39

git source:git_init-gmouse
是双飞燕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
按Readme第二个make出错

代码: 全选

$ 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'
像是g++完全没有找到libusb-1.0,怎么回事呢?

代码: 全选

$ 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
上次由 tank_dr 在 2013-05-23 10:33,总共编辑 1 次。
tank_dr
帖子: 13
注册时间: 2012-05-26 8:31

Re: [mouse][driver]有谁编译过Marisa-Chan 的 init-gmouse?

#2

帖子 tank_dr » 2013-05-23 10:32

tank_dr 写了:git source:git_init-gmouse
按Readme第二个make出错

代码: 全选

$ 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'
像是g++完全没有找到libusb-1.0,怎么回事呢?
是g++命令行解析顺序的问题,终于搞定:

代码: 全选

g++  -s  -o a4_tool obj/Release/main.o ../libgmouse/libgmouse.a `pkg-config --libs libusb-1.0`
Make 文件修改如下行:
LIB = ../libgmouse/libgmouse.a
LIB += `pkg-config --libs libusb-1.0`
#LIB = -L../libgmouse -lgmouse
#LIB += -lusb-1.0
LDFLAGS =
回复