我想在我的 C++ 应用程序中使用 GPGME 生成和加密密钥。但是,在尝试开始时,我遇到了一个问题:
我为我的 debian 系统下载了开发包。现在我想告诉我的编译器(Qt Creator 中的 gcc)使用文档中提到的工具在哪里可以找到带有 cmake 的库。但我不知道如何添加gpgme-config --cflags --libs
到我的编译器标志。这没有用:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} `gpgme-config --cflags --libs` ")
当我尝试构建应用程序时,编译器找不到gpgme-config
:
c++: error: $(gpgme-config: File or Directory not found
c++: error: unrecognized command line option ‘--cflags’
c++: error: unrecognized command line option ‘--libs)’
无论如何gpgme-config --cflags --libs
在命令行上执行确实会给我一个结果:
-L/usr/lib/x86_64-linux-gnu -lgpgme -lassuan -lgpg-error
我知道文档还提到了 Automake 和 libtool 以使这个过程更容易。但我之前没有使用过 Automake 或 libtool。
更新:
我还尝试为 GPGME 使用 FindGpgme.cmake 文件。但是我使用的第一个文件需要其他几个 cmake 文件,我也下载了这些文件。我将它们放在与 FindGpgme.cmake 相同的目录中。找到了主 cmake 文件 (FindGpgme.cmake),但没有找到 MacroEnsureVersion 和 MacroBoolTo01。我对 CMakeLists.txt 的更改如下:
include(cmake_modules/FindGpgme.cmake)
find_package(Gpgme)
我尝试了 FindGpgme.cmake 中其他文件的相对和绝对路径。同样的问题 - cmake 找不到它们。我的第二次尝试是使用我在 gitweb 上找到的文件。错误是:
CMake Error at cmake_modules/FindGpgme.cmake:376 (set_package_properties):
Unknown CMake command "set_package_properties".
Call Stack (most recent call first):
CMakeLists.txt:7 (include)
我完全没有胶水如何解决这个set_package_properties
问题。
更新 2
我添加了
include(FeatureSummary)
按照 kfunk 的建议添加到我的 CMakeLists.txt 中。现在我收到以下错误:
CMakeLists.txt:9 (find_package) 处的 CMake 警告:通过在 CMAKE_MODULE_PATH 中未提供“FindGpgme.cmake”,该项目已要求 CMake 查找“Gpgme”提供的包配置文件,但 CMake 没有找到。
找不到由“Gpgme”提供的具有以下任何名称的包配置文件:
GpgmeConfig.cmake gpgme-config.cmake
将“Gpgme”的安装前缀添加到 CMAKE_PREFIX_PATH 或将
“Gpgme_DIR”设置为包含上述文件之一的目录。如果“Gpgme”提供单独的开发包或SDK,请确保已安装。
即使消息描述接缝非常详细,我也不知道如何将 FindGpgme.cmake 添加到CMAKE_MODULE_PATH
或如何将请求的前缀添加到CMAKE_PREFIX_PATH
. 但是绝对安装了开发包(使用包管理器)