0

私はfreebsdを使用していて、次の場所からuhdを実行しようとしています。http://www.ettus.com/downloadこれは通常freebsdで実行する必要がありますが、ここで指定されているようにビルドしようとすると問題が発生します: http://www。 ettus.com/uhd_docs/manual/html/build.html#build-instructions-unix

私は得る:

[ 73%] Building CXX object examples/CMakeFiles/benchmark_rx_rate.dir/benchmark_rx_rate.cpp.o
Linking CXX executable benchmark_rx_rate
../lib/libuhd.so.003.000: undefined reference to `uhd::set_thread_priority(float, bool)'
collect2: ld returned 1 exit status
 *** Error code 1

これはリンカーエラーのようですが、どうすればそれを取り除くことができますか?ldconfigを使用してパスを設定しようとしましたが、変更されていません。たぶんあなたの何人かは私が検索を続けることができるという考えを持っています。

4

2 に答える 2

0

うまくいけば、libuhd get はこの CMake スクリプトによって以前にビルドされます。真の場合、このエラーは CMakeLists.txt ファイルのバグを示しています。libuhd を使用した例を作成しているようです。あなたがそれらを必要としているとは思えません。したがって、CMakeCache.txt でスイッチを探して Makefile を再生成するか、CMakeLists.txt をハックしてサンプル ディレクトリを含めないようにします。

CMAKE_EXE_LINKER_FLAGS を -L/usr/local/include に設定してみてください。

于 2011-05-05T12:40:12.347 に答える
0

これは、FreeBSD への移植を作成するのに最適な状況です。FreeBSD には独自の一貫したファイルシステム レイアウトがあるため、(arrowdodger が指摘しているように) コンパイラとリンカーのフラグをわずかに変更する必要があることがよくあります。

ポート システムは、これらの構成変更を永続的にキャプチャし、コマンドを入力するのと同じくらい簡単にソフトウェア パッケージをインストールできるようにするためのフレームワークです。

cd /usr/ports/カテゴリ/アプリケーション名&& make install clean

完璧な世界では、UHD ポートを作成し、レビューのために送信して、ツリーに追加します。その方法を学ぶ手助けが必要な場合は、FreeBSD Porter's Handbookfreebsd-ports メーリング リストが優れたリソースです。

于 2011-05-23T22:46:13.343 に答える