我对使用 usrp 设备非常陌生,并且正在尝试学习如何使用 C++ API 调整 E310 设备的接收器或发射器的中心频率,所以我有几个问题:
1)我在下面的代码中缺少什么
2)如何让我的脚本正确编译和运行。使用 cmake 还是 g++?(两种都试过了,对我不起作用。)甚至,我将如何编译从 github 存储库获得的示例,以确保我做对了。
我也尝试使用一些示例作为起点。
谢谢
#include <uhd/utils/safe_main.hpp>
#include <uhd/usrp/multi_usrp.hpp>
#include <boost/format.hpp>
#include <uhd/types/tune_request.hpp>
#include <iostream>
#include <csignal>
#include <cstdio>
int UHD_SAFE_MAIN()
{
double freq;
printf("Enter RX frequency in Hz");
scanf("%lf",&freq);
//create a USRP
uhd::usrp::multi_usrp::sptr usrp;
//set the frequency
usrp->set_rx_freq(freq);
//Read the frequency
usrp->get_rx_freq();
return 0;
}
当我使用 g++ -luhd Example.cpp -o test 编译时,我得到的错误信息是
/usr/lib/gcc/arm-oe-linux-gnueabi/4.8.2/../../../../arm-oe-linux-gnueabi/bin/ld: /usr/lib/gcc/ arm-oe-linux-gnueabi/4.8.2/../../../libuhd.so:未定义对符号“_ZN5boost6system15system_categoryEv”的引用//usr/lib/libboost_system.so.1.55.0:添加符号时出错:命令行 collect2 中缺少 DSO:错误:ld 返回 1 个退出状态。
我不确定这是否与语法或一些缺失的参数或其他我不理解的东西有关。