相关疑难解决方法(0)

如何在 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万
查看次数

提示使用自定义目录查找<name> .cmake文件

在CMake中,有没有办法制作内置的Find脚本来确定我们指定的自定义目录的优先级?因为特别是在Windows中,模块查找脚本通常无法检测模块,例如visual studio目录.因此,我通常必须手动设置外部库的路径,这是非常累人的.相反,我希望这些脚本能够查看自定义目录,首先让我们在主项目中说"dependencies"文件夹,以便我可以直接将这些外部文件放在该文件夹中,这比将它们放入VC文件夹或手动设置更容易.路径.

cmake

3
推荐指数
1
解决办法
3202
查看次数

标签 统计

cmake ×2

c++ ×1

linker-errors ×1