繁体   English   中英

在Debian中为C ++应用程序使用GPGME

[英]Using GPGME in Debian for C++ Application

我想在我的C ++应用程序中使用GPGME进行密钥生成和加密。 但是,在尝试入门时,我遇到了一个问题:

我为我的debian系统下载了dev软件包。 现在,我想告诉我的编译器(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 但是肯定安装了开发包(使用包管理器)

我建议使用正确的CMake查找脚本来查找GPGME安装:

此处的示例: https : //quickgit.kde.org/?p=kwallet.git&a=blob&h=7a092104ba0604b0606c4662750b8b32c5c3e2c6&f=cmake%2FFindGpgme.cmake&o=plain

然后在您的CMake代码中进行以下操作(未经测试):

find_package(Gpgme)
include_directories(${GPGME_INCLUDES})
target_link_libraries(YOURTARGET ${GPGME_VANILLA_LIBRARIES)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM