C++ 如何解决';对libusb'的未定义引用;ros中的错误?
我正在尝试将摄像头(非uvc)流程序传输到ros平台 我已经启动了摄像头驱动程序 Makefile是这样的:C++ 如何解决';对libusb'的未定义引用;ros中的错误?,c++,linux,makefile,cmake,ros,C++,Linux,Makefile,Cmake,Ros,我正在尝试将摄像头(非uvc)流程序传输到ros平台 我已经启动了摄像头驱动程序 Makefile是这样的: 生成到/catkin_ws/build/***/中的Makefile行如下所示: [1] 有人知道如何解决这个问题吗 [2] 如何在我的电脑中找到libusb的.a和.so?(我确信我有它们,因为我可以打包配置--cflags/--libs它们) [3] 如何在ros CmakeList中显式链接动态库?或者只需链接库(usb)就足以满足静态和动态库的需要?在cmake中查找库通
生成到/catkin_ws/build/***/中的Makefile行如下所示:
[1] 有人知道如何解决这个问题吗 [2] 如何在我的电脑中找到libusb的.a和.so?(我确信我有它们,因为我可以打包配置--cflags/--libs它们)
[3] 如何在ros CmakeList中显式链接动态库?或者只需链接库(usb)就足以满足静态和动态库的需要?在cmake中查找库通常使用
find\u package
完成
在您的情况下,它可能看起来像这样(取自):
当然,您可能需要调整版本号(也许可以简单地将其删除)。在cmake中查找库通常使用
find\u package
完成
在您的情况下,它可能看起来像这样(取自):
当然,您可能需要调整版本号(也许可以简单地将其删除)。在cmake中查找库通常使用
find\u package
完成
在您的情况下,它可能看起来像这样(取自):
当然,您可能需要调整版本号(也许可以简单地将其删除)。在cmake中查找库通常使用
find\u package
完成
在您的情况下,它可能看起来像这样(取自):
当然,您可能需要调整版本号(也许可以简单地将其删除)。
find\u包要求CMake具有相应的find.CMake
让我有一个愉快的假期
您可以使用它来编写自己的FindLibUSB
或者,您可以直接在CMakeLists.txt中使用它:
find_package(PkgConfig REQUIRED)
pkg_search_module(LIBUSB1 REQUIRED libusb-1.0)
include_directories(SYSTEM ${LIBUSB1_INCLUDE_DIRS})
您可以在设置的所有变量中看到:LIBUSB1\u库
库等…find\u包
要求CMake具有相应的find.CMake
让我有一个愉快的假期
您可以使用它来编写自己的FindLibUSB
或者,您可以直接在CMakeLists.txt中使用它:
find_package(PkgConfig REQUIRED)
pkg_search_module(LIBUSB1 REQUIRED libusb-1.0)
include_directories(SYSTEM ${LIBUSB1_INCLUDE_DIRS})
您可以在设置的所有变量中看到:LIBUSB1\u库
库等…find\u包
要求CMake具有相应的find.CMake
让我有一个愉快的假期
您可以使用它来编写自己的FindLibUSB
或者,您可以直接在CMakeLists.txt中使用它:
find_package(PkgConfig REQUIRED)
pkg_search_module(LIBUSB1 REQUIRED libusb-1.0)
include_directories(SYSTEM ${LIBUSB1_INCLUDE_DIRS})
您可以在设置的所有变量中看到:LIBUSB1\u库
库等…find\u包
要求CMake具有相应的find.CMake
让我有一个愉快的假期
您可以使用它来编写自己的FindLibUSB
或者,您可以直接在CMakeLists.txt中使用它:
find_package(PkgConfig REQUIRED)
pkg_search_module(LIBUSB1 REQUIRED libusb-1.0)
include_directories(SYSTEM ${LIBUSB1_INCLUDE_DIRS})
您可以在设置的所有变量中看到:LIBUSB1\u库
库等…hi luator,您还在吗?我想我的系统找不到这个包,它报告:(find_package):找不到libusb-1.0包的配置文件。将libusb-1.0_DIR设置为包含libusb-1.0的CMake配置文件的目录。该文件将具有以下名称之一:libusb-1.0Config.cmake libusb-1.0-config.cmake,我认为我的系统没有这两个变量${libusb_1_INCLUDE_DIRS}和${libusb_1_LIBRARIES},我键入apt get install libusb-1.0,它只是说我已经安装了这个。然而,我不知道libusb在哪里。它不在/usr/lib/usb/bin或/usr/local/lib中。我能准确定位这个包并使用绝对路径吗?@ThuVlion如果find_包成功,变量将自动设置。错误消息表明您需要一个Find.cmake
,如另一个答案中所述。如果您将来在其他库中遇到这个问题:在大多数情况下,您只需向google询问“find.cmake”hi luator,就可以找到合适的查找文件,您还在吗?我想我的系统找不到这个包,它报告:(find_package):找不到libusb-1.0包的配置文件。将libusb-1.0_DIR设置为包含libusb-1.0的CMake配置文件的目录。该文件将具有以下名称之一:libusb-1.0Config.cmake libusb-1.0-config.cmake,我认为我的系统没有这两个变量${libusb_1_INCLUDE_DIRS}和${libusb_1_LIBRARIES},我键入apt get install libusb-1.0,它只是说我已经安装了这个。然而,我不知道libusb在哪里。它不在/usr/lib/usb/bin或/usr/local/lib中。我能准确定位这个包并使用绝对路径吗?@ThuVlion如果find_包成功,变量将自动设置。错误消息表明您需要一个Find.cmake
,如另一个答案中所述。如果您将来在其他库中遇到这个问题:在大多数情况下,您只需向google询问“find.cmake”hi luator,就可以找到合适的查找文件,您还在吗?我想我的系统找不到这个包,它报告:(find_package):找不到libusb-1.0包的配置文件。将libusb-1.0_DIR设置为包含libusb-1.0的CMake配置文件的目录。该文件将具有以下名称之一:libusb-1.0Config.cmake libusb-1.0-config.cmake,我认为我的系统没有这两个变量${libusb_1_INCLUDE_DIRS}和${libusb_1_LIBRARIES},我键入apt get install libusb-1.0,它只是说我已经安装了这个。然而,我不知道libusb在哪里。它不在/usr/lib/usb/bin或/usr/local/lib中。我能准确定位这个包并使用绝对路径吗?@ThuVlion如果find_包成功,变量将自动设置。错误消息表明您需要一个Find.cmake
,如另一个答案中所述。如果您在t中的其他库中遇到此问题
find_package(libusb-1.0 REQUIRED)
include_directories (${LIBUSB_1_INCLUDE_DIRS})
...
target_link_libraries(asi_converter_real ${catkin_LIBRARIES} ${LIBUSB_1_LIBRARIES})
find_package(PkgConfig REQUIRED)
pkg_search_module(LIBUSB1 REQUIRED libusb-1.0)
include_directories(SYSTEM ${LIBUSB1_INCLUDE_DIRS})