Blu*_*pon 4 gnuradio cmake libusb libusb-1.0 rtl-sdr
由于此处的说明,正在尝试安装rtl-sdr(通过) ,但不能比第一个说明序列中的步骤更进一步:git clone git://git.osmocom.org/rtl-sdr.gitmake
cd rtl-sdr/\nmkdir build\ncd build\ncmake ../\nmake\nRun Code Online (Sandbox Code Playgroud)\n在我第一次尝试时,我收到以下错误:
\n/rtl-sdr/src/librtlsdr.c:30:10: fatal error: libusb.h: No such file or directory\nRun Code Online (Sandbox Code Playgroud)\n找到该文件后:
\n/usr/include$ sudo locate libusb.h\n/usr/include/libusb-1.0/libusb.h\nRun Code Online (Sandbox Code Playgroud)\n我尝试将原始内容替换#include <libusb.h>为#include <libusb-1.0/libusb.h>(如此处和此处建议的那样),这导致了不同的失败:
/rtl-sdr/build$ make\n[ 6%] Built target convenience_static\nScanning dependencies of target rtlsdr\n[ 9%] Building C object src/CMakeFiles/rtlsdr.dir/librtlsdr.c.o\n[ 12%] Linking C shared library librtlsdr.so\n[ 28%] Built target rtlsdr\n[ 31%] Linking C executable rtl_test\nlibrtlsdr.so.0.6git: undefined reference to `libusb_open\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_release_interface\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_close\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_get_string_descriptor_ascii\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_get_device_list\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_kernel_driver_active\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_alloc_transfer\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_bulk_transfer\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_reset_device\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_handle_events_timeout\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_get_device\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_exit\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_free_transfer\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_init\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_get_device_descriptor\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_free_device_list\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_claim_interface\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_control_transfer\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_submit_transfer\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_dev_mem_free\'\nlibrtlsdr.so.0.6git: undefined reference to `libusb_cancel_transfer\'\ncollect2: error: ld returned 1 exit status\nsrc/CMakeFiles/rtl_test.dir/build.make:96: recipe for target \'src/rtl_test\' failed\nmake[2]: *** [src/rtl_test] Error 1\nCMakeFiles/Makefile2:138: recipe for target \'src/CMakeFiles/rtl_test.dir/all\' failed\nmake[1]: *** [src/CMakeFiles/rtl_test.dir/all] Error 2\nMakefile:129: recipe for target \'all\' failed\nmake: *** [all] Error 2\nRun Code Online (Sandbox Code Playgroud)\n--cflags libusb-1.0请注意,此建议似乎与 gcc 编译选项/链接或-lusb-1.0(参见此处和此处)相关,我不知道在哪里可以找到(因为我正在使用make,但不习惯它)。
我还尝试将原来的替换#include <libusb.h>为#include <usb.h>(如此处所示,这导致:
/rtl-sdr/src/librtlsdr.c:97:2: error: unknown type name \xe2\x80\x98libusb_context\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n仅供参考libusb-1.0-0-dev,并且libusb-dev已经安装(按照此处的建议,我尝试过,尽管我想我已经安装了它......):
/usr/include$ sudo apt install libusb-1.0-0-dev\nlibusb-1.0-0-dev is already the newest version (2:1.0.21-2).\n\n~$ sudo apt install libusb-dev\nlibusb-dev is already the newest version (2:0.1.12-31).\nRun Code Online (Sandbox Code Playgroud)\n并已rtl-sdr使用以下命令安装apt:
sudo apt-get install rtl-sdr\nrtl-sdr is already the newest version (0.5.3-13).\nRun Code Online (Sandbox Code Playgroud)\n关于我的系统:Linux版本5.4.0-58-generic gcc版本7.5.0(Ubuntu 7.5.0-3ubuntu1~18.04)。此安装的目的是能够将 DVB-T 加密狗与 GNU Radio 一起使用,这需要此rtl-sdr安装。
编辑: @Tsyvarev 回答后
\npkg-config有sudo apt install pkg-configgit clone、新的 clean\n git clone、新的/build等等然后的第一个存储库make,这有效!删除旧的存储库克隆并重新创建一个干净的存储库是必要的,因为即使在安装之后尝试在旧的存储库中/build启动也不起作用。请注意,这意味着不需要对中的代码行进行任何更改。make/buildpkg-config#include <libusb.h>src/librtlsdr.c
附带说明一下,对于那些因为尝试安装 GNU Radio 的“RTL-SDR Source”块而最终来到这里的人,我怀疑我的问题实际上是我在安装gr-osmosdr后sudo apt install gr-osmosdr没有rtl-sdr安装一个简单的sudo apt-get install rtl-sdr。
@Tsyvarev 答案(参见评论),我将其放入编辑中:在我的问题末尾。我在这里重新发布他的解决方案,以结束问题并将其标记为已解决。
pkg-config有sudo apt install pkg-configgit clone、新清理
git clone、新/build等产生的第一个存储库,然后make,它起作用了!删除旧的存储库克隆并重新创建一个干净的存储库是必要的,因为即使在安装后尝试在旧的存储库中/build启动也不起作用。请注意,这意味着不需要对中的代码行进行任何更改。make/buildpkg-config#include <libusb.h>src/librtlsdr.c
顺便说一句,对于那些因为尝试安装 GNU Radio 的“RTL-SDR Source”块而最终来到这里的人,我怀疑我的问题实际上是我在使用简单的安装后没有gr-osmosdr安装。sudo apt install gr-osmosdrrtl-sdrsudo apt-get install rtl-sdr
| 归档时间: |
|
| 查看次数: |
13606 次 |
| 最近记录: |