私は 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 つの終了ステータスを返しました。
これが構文に関するものなのか、引数の欠落によるものなのか、それともまだ理解していない何かに関するものなのかはわかりません。