官方SDK提供的demo是C++的示例
x86_64的linux
-
使用官方c++示例
-
修改demo/linux下makefile名字
-
执行make clean
-
执行make
-
-
使用c自己写
-
删除无用文件,libusb-1.0.so 才是真正使用的,libusb-1.0.so.0,libusb-1.0.2.0用不到也能删
-
修改
include/HCUsbSDK.h#if defined _WIN32 || defined _WIN64 #define USB_SDK_API extern "C" __declspec(dllimport) #elif defined __linux__ || defined __APPLE__ #define USB_SDK_API extern "C" #endif改成
#if defined _WIN32 || defined _WIN64 #define USB_SDK_API extern "C" __declspec(dllimport) #elif defined __linux__ || defined __APPLE__ #ifdef __cplusplus #define USB_SDK_API extern "C" #else #define USB_SDK_API //extern "C" 是c++的语法,c不支持 #endif #endif -
编写makefile
CC = gcc CFLAGS = -g -O0 -Wall INCLUDE = -I. -I../../include LDLIBS = -lHCUSBSDK -lpthread LIBPATH = ../../library/linux64 SRCS = $(wildcard *.c) OBJS = $(SRCS:.c=.o) TARGET = usb_demo $(TARGET): $(OBJS) $(CC) $(CFLAGS) $^ -o $@ -L$(LIBPATH) $(LDLIBS) -Wl,-rpath=$(LIBPATH) cp $@ $(LIBPATH) %.o: %.c $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ all: $(TARGET) @echo "Build $(TARGET) Finished" clean: rm -f $(OBJS) $(TARGET) $(LIBPATH)/$(TARGET) -
编写测试
#include <stdio.h> #include "../../include/HCUsbSDK.h" int main(void) { USB_Init(); printf("SDK_version=%d\n",USB_GetSDKVersion()); printf("DeviceCount=%d\n", USB_GetDeviceCount()); return 0; } -
注意点
-
编写的应用程序必须在.so依赖同级目录。
library/linux64/ ├── usb_demo ← 程序 ├── libHCUSBSDK.so ← SDK ├── libhpr.so ├── libusb-1.0.so ← 被 libHCUSBSDK.so dlopen └── libuvc.so ← 被 libHCUSBSDK.so dlopen
-
-
-
其他示例
前往其他地方