小编Seg*_*ult的帖子

如何在 CMake 中链接第三方库 (LibUSB)

我正在尝试在项目中使用 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)

c++ cmake linker-errors

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1

cmake ×1

linker-errors ×1