【发布时间】:2017-04-03 10:01:46
【问题描述】:
我想在我的 C 程序项目中包含 bluez 最新版本 (5.44)。我正在使用 CMake 进行构建。我尝试如下使用pkg_check_modules
pkg_check_modules (BLUEZ REQUIRED bluez)
include_directories(${BLUEZ_INCLUDE_DIRS})
link_directories(${BLUEZ_LIBRARY_DIRS})
但它总能找到旧版本 5.37。我怎样才能指出这一点以获取最新版本?
我也试过了,但它会抛出如下错误。
pkg_check_modules (BLUEZ REQUIRED bluez=5.44)
include_directories(${BLUEZ_INCLUDE_DIRS})
link_directories(${BLUEZ_LIBRARY_DIRS})
获取错误:
Checking for module 'bluez=5.44'
--
CMake Error at /usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:367 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:532 (_pkg_check_modules_internal)
CMakeLists.txt:30 (pkg_check_modules)
我下载了最新的 bluez 版本并使用 sudo make install 构建和安装。我能够找到并使用bluetoothctl 工具。
【问题讨论】:
-
你有手动安装 bluez (5.44) 的
.pc文件吗?我在source tree 中没有看到任何人。实用程序pkg-config找不到没有此类文件的任何内容。 -
@Tsyvarev
bluez.pc由自动工具自动生成。 OP 的pkg-config很可能不知道它的安装位置。
标签: linux bluetooth cmake bluez