如何在项目中使用 CMake 包含 bluez 最新版本库
How to include bluez latest version library using CMake in project
我想将 bluez 最新版本 (5.44) 添加到我的 C 程序项目中。我正在使用 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
工具。
首先,您需要确保 pkg-config
可以找到您安装的 bluez
版本。如果不能,那么 CMake 也不能。
$ pkg-config --modversion bluez
如果这没有给你你期望的版本,那么你需要找到你想要的版本的 bluez.pc
,并确保它的目录在 PKG_CONFIG_PATH 的开头。既然你说你用了sudo make install
,你想要的bluez.pc
很可能在/usr/local/lib/pkgconfig/bluez.pc
。 (你需要自己看才能确定。)如果是这样,那么
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} pkg-config --modversion bluez
应该return 是您要查找的版本。如果是这样,请采取必要措施使您的 shell 永久更改。删除您的 CMake 缓存,然后重新创建您的项目。
我想将 bluez 最新版本 (5.44) 添加到我的 C 程序项目中。我正在使用 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
工具。
首先,您需要确保 pkg-config
可以找到您安装的 bluez
版本。如果不能,那么 CMake 也不能。
$ pkg-config --modversion bluez
如果这没有给你你期望的版本,那么你需要找到你想要的版本的 bluez.pc
,并确保它的目录在 PKG_CONFIG_PATH 的开头。既然你说你用了sudo make install
,你想要的bluez.pc
很可能在/usr/local/lib/pkgconfig/bluez.pc
。 (你需要自己看才能确定。)如果是这样,那么
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} pkg-config --modversion bluez
应该return 是您要查找的版本。如果是这样,请采取必要措施使您的 shell 永久更改。删除您的 CMake 缓存,然后重新创建您的项目。