hackrf tools在windows下的编译
hackrf one是一款业余无线电非常流行的sdr设备,我第一次的使用经历是在debian中。linux下用包管理安装这类程序非常简单,但在windows却非常麻烦,所以我想着就在win中用源码构建的方式可能更方便使用。
其实hackrf在windows下是有一些预编译二进制程序的,但是却是在一个叫PothosSDR项目中,官网本身是没有提供的。而且这个项目里的东西时间上有点老旧了,所以我还是更推荐从源码编译方式。
官网中的源码编译文档也有些老旧了,我在这里记录一下自己的构建hackrf tools的过程。
准备
- Zadig
- Visual Studio 2019 build tools
- cmake-2.8.12.1 or later
- libusbx-1.0.18 or later
- fftw-3.3.5 or later
- pthreads
其中zadig用于安装usb驱动,vs2019 build tools则是编译和构建的工具链,这两个都可以去从官网下载安装。
剩下的cmake以及一些依赖库,我推荐用下面的方式安装,先用scoop去安装cmake和vcpkg
scoop install cmake scoop install vcpkg
然后借助vcpkg安装剩下的依赖库,这样省去了一个个去找网页中找这些库。
vcpkg install --triplet=x64-windows libusb fftw3 pthreads
编译
上面的准备工作做好之后,就可以开始正式编译了。首先进入build tools的环境Launch-VsDevShell.ps1(在build tools的安装目录中),它会把工具链们注册到这个powershell的path变量中,让编译相关的工具可以被shell找到。
然后clone hackrf的源码,并创建build目录进入其中。
git clone https://github.com/greatscottgadgets/hackrf.git cd hackrf mkdir host/build cd host/build
在build目录中使用cmake指定好那些依赖库的路径(scoop安装的vcpkg下载的lib在scoop目录中),构建出HackRF.sln,再用msbuild就完成了相关的编译。
cmake ../ -G "Visual Studio 16 2019" -A x64 ` -DLIBUSB_INCLUDE_DIR=C:/Users/[username]/scoop/apps/vcpkg/current/installed/x64-windows/include/libusb-1.0 ` -DLIBUSB_LIBRARIES=C:/Users/[username]/scoop/apps/vcpkg/current/installed/x64-windows/lib/libusb-1.0.lib ` -DFFTW_INCLUDES=C:/Users/[username]/scoop/apps/vcpkg/current/installed/x64-windows/include ` -DFFTW_LIBRARIES=C:/Users/[username]/scoop/apps/vcpkg/current/installed/x64-windows/lib/fftw3f.lib ` -DTHREADS_PTHREADS_INCLUDE_DIR=C:/Users/[username]/scoop/apps/vcpkg/current/installed/x64-windows/include ` -DTHREADS_PTHREADS_WIN32_LIBRARY=C:/Users/[username]/scoop/apps/vcpkg/current/installed/x64-windows/lib/pthreadvc3.lib msbuild HackRF.sln
拷贝dll
编译好的文件们在hackrf\host\build\hackrf-tools\src\Debug\目录下。要能够使用它们,还需要把hackrf.dll,pthreadVC3.dll,fftw3f.dll拷贝到程序所的目录中,不让会出现找不到相关dll这类错误。
cp hackrf\host\build\libhackrf\src\Debug\hackrf.dll hackrf\host\build\hackrf-tools\src\Debug\ cp ~\scoop\apps\vcpkg\current\installed\x64-windows\bin\pthreadVC3.dll hackrf\host\build\hackrf-tools\src\Debug\ cp ~\scoop\apps\vcpkg\current\installed\x64-windows\bin\fftw3f.dll hackrf\host\build\hackrf-tools\src\Debug\
拷贝好之后就可以开始真正使用hackrf相关的工具链了。