VS2013编译libhackrf以及测试
2014-07-29 19:45
561 查看
接触hackrf快一个月了,在我的印象里,hackrf的程序大多都是在linux下编译,win用户不是很方便(其实个人觉得ubuntu比win还方便),外加最近需要matlab操作hackrf,所以脑子一热就用VS编译了一下libhackrf,首先看一下hackrf-info运行的效果。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/ab2ec81c3f31ab239bdb5a299e7d58aa)
以上图片是host\hackrf-tools\src\hackrf_info.c 移植过来的程序。我使用的是win7 x64,IDE是VS2013。编译hackrflib和测试分为两个工程,Libhackrf和HackRFLibTest。下面还是老流程,一步步说一下编译过程。
1)下载安装pthread-win32。hackrflib的其中一个依赖库,可以到这里下载。
(1)打开压缩包,里面有三个文件夹,将Pre-built.2解压到D:\Program Files (x86)\pthreads-w32-2-9-1-release 如图(路径可以自己改变,这里只是建议路径)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/c1ef99de8f42907def57f754aef18370)
(2)将D:\Program Files (x86)\pthreads-w32-2-9-1-release\Pre-built.2\dll\x64\pthreadVC2.dll 拷贝到C:\Windows\System32 如图
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/f4afdfc4740dc84a8f6232922b36aa71)
2)下载安装libusbx-1.0.18-win,可以到这里下载。解压到如图位置
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/2aa92282517dda109ffb8432956392c0)
3)编译libhackrf
(1)打开VS创建Libhackrf工程(Win32项目),配置如下
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/ae178105153a1a0ff3acab6643c548c6)
(2)添加hackrf.c和hackrf.h如图,这两个文件在hackrf source的host\libhackrf\src (hackrf source的获取方法参考hackrf.net,可以直接到Github搜索hackrf)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/6271f339e6e615e016293e3e9544f366)
(3)配置头文件和依赖库的路径以及输入输出,项目右键-》属性
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/cd216c70c0722a204648162ebadf0fa6)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/607c952e4673e03ce106cd72cafcdf92)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/8a6a0f5eb8c00276c1ed70515e644622)
(4)配置编译器
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/f3ca2be9fe358fce2e6c7a518b1877a8)
(5)编译生成Libhackrf.lib。为了方便调用,我将hackrf.h和libhackrf.lib拷贝到如下地址,方便其他程序调用
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/643d405cfc14fc840442c63477df67a7)
至此Libhackrf编译结束
4)编译HackRFLibTest
(1)创建win32 console工程,并输入如下代码
(2)配置过程中,库目录设置和包含目录设置与上面类似,但是注意这次要加入Libhackrf,一共三个库。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/08c2c072d27af0cb00b6bd6543d4b1a2)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201407/a625958712a7f42e510a2816c12dfd6b)
(3)x64编译运行即可得到本章开头的演示效果。(注意要用zadig_2.1.0安装好hackrf驱动)
5)编译结束,编译过程中使用的代码我迟些会上传到我的code。
下一步,是完成hackrf的matlab接口,然后FFT。
参考文献
暂无
以上图片是host\hackrf-tools\src\hackrf_info.c 移植过来的程序。我使用的是win7 x64,IDE是VS2013。编译hackrflib和测试分为两个工程,Libhackrf和HackRFLibTest。下面还是老流程,一步步说一下编译过程。
1)下载安装pthread-win32。hackrflib的其中一个依赖库,可以到这里下载。
(1)打开压缩包,里面有三个文件夹,将Pre-built.2解压到D:\Program Files (x86)\pthreads-w32-2-9-1-release 如图(路径可以自己改变,这里只是建议路径)
(2)将D:\Program Files (x86)\pthreads-w32-2-9-1-release\Pre-built.2\dll\x64\pthreadVC2.dll 拷贝到C:\Windows\System32 如图
2)下载安装libusbx-1.0.18-win,可以到这里下载。解压到如图位置
3)编译libhackrf
(1)打开VS创建Libhackrf工程(Win32项目),配置如下
(2)添加hackrf.c和hackrf.h如图,这两个文件在hackrf source的host\libhackrf\src (hackrf source的获取方法参考hackrf.net,可以直接到Github搜索hackrf)
(3)配置头文件和依赖库的路径以及输入输出,项目右键-》属性
(4)配置编译器
(5)编译生成Libhackrf.lib。为了方便调用,我将hackrf.h和libhackrf.lib拷贝到如下地址,方便其他程序调用
至此Libhackrf编译结束
4)编译HackRFLibTest
(1)创建win32 console工程,并输入如下代码
// HackRFLibTest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" //include libhack #include "hackrf.h" #include <stdio.h> #include <stdlib.h> int _tmain(int argc, _TCHAR* argv[]) { hackrf_device* device = NULL; int result = HACKRF_SUCCESS; uint8_t board_id = BOARD_ID_INVALID; char version[255 + 1]; read_partid_serialno_t read_partid_serialno; result = hackrf_init(); if (result != HACKRF_SUCCESS) { fprintf(stderr, "hackrf_init() failed: %s (%d)\n", hackrf_error_name((hackrf_error)result), result); getchar(); return EXIT_FAILURE; } result = hackrf_open(&device); if (result != HACKRF_SUCCESS) { fprintf(stderr, "hackrf_open() failed: %s (%d)\n", hackrf_error_name((hackrf_error)result), result); getchar(); return EXIT_FAILURE; } printf("Found HackRF board.\n"); result = hackrf_board_id_read(device, &board_id); if (result != HACKRF_SUCCESS) { fprintf(stderr, "hackrf_board_id_read() failed: %s (%d)\n", hackrf_error_name((hackrf_error)result), result); getchar(); return EXIT_FAILURE; } printf("Board ID Number: %d (%s)\n", board_id, hackrf_board_id_name((hackrf_board_id)board_id)); result = hackrf_version_string_read(device, &version[0], 255); if (result != HACKRF_SUCCESS) { fprintf(stderr, "hackrf_version_string_read() failed: %s (%d)\n", hackrf_error_name((hackrf_error)result), result); getchar(); return EXIT_FAILURE; } printf("Firmware Version: %s\n", version); result = hackrf_board_partid_serialno_read(device, &read_partid_serialno); if (result != HACKRF_SUCCESS) { fprintf(stderr, "hackrf_board_partid_serialno_read() failed: %s (%d)\n", hackrf_error_name((hackrf_error)result), result); getchar(); return EXIT_FAILURE; } printf("Part ID Number: 0x%08x 0x%08x\n", read_partid_serialno.part_id[0], read_partid_serialno.part_id[1]); printf("Serial Number: 0x%08x 0x%08x 0x%08x 0x%08x\n", read_partid_serialno.serial_no[0], read_partid_serialno.serial_no[1], read_partid_serialno.serial_no[2], read_partid_serialno.serial_no[3]); result = hackrf_close(device); if (result != HACKRF_SUCCESS) { fprintf(stderr, "hackrf_close() failed: %s (%d)\n", hackrf_error_name((hackrf_error)result), result); getchar(); return EXIT_FAILURE; } hackrf_exit(); printf("input ENTER to quite.\n"); getchar(); return 0; }
(2)配置过程中,库目录设置和包含目录设置与上面类似,但是注意这次要加入Libhackrf,一共三个库。
(3)x64编译运行即可得到本章开头的演示效果。(注意要用zadig_2.1.0安装好hackrf驱动)
5)编译结束,编译过程中使用的代码我迟些会上传到我的code。
下一步,是完成hackrf的matlab接口,然后FFT。
参考文献
暂无
相关文章推荐
- 【流媒体学习】live555学习(一):live555—VS2010 /VS2013 下live555编译、使用及测试
- 【流媒體】live555—VS2010 /VS2013 下live555编译、使用及测试
- Windows下VS2013 C++编译测试faster-rcnn
- caffe搭建以及初步学习--win7-vs2013-gtx650tiboost-cuda8.0-cifar10训练和测试-2-完整解决方案cifar10_full_solver.prototxt
- 【流媒體】live555—VS2010 /VS2013 下live555编译、使用及测试
- glog--介绍以及vs2010 vs2013 vs2015下编译
- Windows下 VS2013编译zlib库以及libpng库
- Windows下VS2013 C++编译测试faster-rcnn
- VS2013环境搭建以及简单C++程序测试
- Windows下VS2013 C++编译测试faster-rcnn
- 【流媒體】live555—VS2010/VS2013 下live555编译、使用及测试
- live555—VS2010/VS2013 下live555编译、使用及测试
- Windows下VS2013 C++编译测试faster-rcnn(2017-02-26)
- LevelDB windows vs2013 c++编译和测试
- live555—VS2010 /VS2013 下live555编译、使用及测试
- live555—VS2010/VS2013 下live555编译、使用及测试
- live555—VS2013 下live555编译、使用及测试
- Windows下VS2013 C++编译测试faster-rcnn
- caffe搭建以及初步学习--win7-vs2013-gtx650tiboost-cuda8.0-cifar10训练和测试-2-快速解决方案cifar10_quick_solver.prototxt
- Windows下VS2013 C++编译测试faster-rcnn