我正在尝试在项目中使用 LibUSB。但是,每当我尝试使用基本的 libUSB 函数时,都会出现以下错误:
...src/main/main.cpp.o: In function `main':
...src/main/main.cpp:10: undefined reference to `libusb_init'
...src/main/main.cpp:11: undefined reference to `libusb_set_debug'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
安装了 LibUSB-devel 包(我在 Fedora 22 上)并且我的 IDE KDevelop 找到并识别标头,一旦您添加了 import 语句,它就会提供 LibUSB 代码完成。我的 IDE 或 CMake(我的构建系统)中没有任何自定义包含行,所以我想知道我需要做什么才能让 CMake 找到 LibUSB 标头。
这是 的内容main.cpp
,以防万一我搞砸了:
#include <iostream>
#include <libusb-1.0/libusb.h>
int main(int argc, char **argv) {
libusb_init(NULL);
libusb_set_debug(NULL, LIBUSB_LOG_LEVEL_WARNING);
/*snip*/
std::cout << "Hello, world! PTPID=" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
以下是CMakeLists.txt
:
../
cmake_minimum_required(VERSION 2.8.11)
set(CMAKE_CXX_FLAGS …
Run Code Online (Sandbox Code Playgroud) 在CMake中,有没有办法制作内置的Find脚本来确定我们指定的自定义目录的优先级?因为特别是在Windows中,模块查找脚本通常无法检测模块,例如visual studio目录.因此,我通常必须手动设置外部库的路径,这是非常累人的.相反,我希望这些脚本能够查看自定义目录,首先让我们在主项目中说"dependencies"文件夹,以便我可以直接将这些外部文件放在该文件夹中,这比将它们放入VC文件夹或手动设置更容易.路径.