Неожиданная структура при использовании GPGME в приложении C++

Я хотел бы использовать GPGME для генерации ключей и шифрования в моем приложении C++. Однако, пытаясь начать, я застрял с проблемой:

Я загрузил пакет dev для моей системы Debian. Я рассказал своему компилятору, как найти библиотеку. Просто чтобы посмотреть, смогу ли я инициализировать библиотеку ( упомянуто здесь), я пытаюсь выполнить следующий код..:

//--- Main.cpp---

#include <locale.h>
#include <gpgme.h> 

int main(){
       /* Initialize the locale environment.  */
  setlocale (LC_ALL, "");
  gpgme_check_version (NULL);
  gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
#ifdef LC_MESSAGES
  gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
#endif
    return 0;
}

линия

gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));

подчеркнуто красным создателем qt. Сообщение

ожидаемый токен ';' получил "структуру"

Но почему?


JFYI

Как краткий обзор моей предыдущей проблемы, мои CMakeLists выглядят так:

Мой основной файл CMakeLists.txt в корневом каталоге моего проекта:

//...
include(FeatureSummary)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
find_package(Gpgme)

# Additional include directories
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}                  
                    ${GPGME_INCLUDES}
)

ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/application/framework/impl)

И CMakeLists.txt в подкаталоге application/framework/impl:

# Define name of component
SET(COMPONENT_NAME framework)

# Define set of source files for library
SET(comp_src
      //... well, the sources
)

add_executable(${COMPONENT_NAME} ${comp_src})
target_link_libraries(${COMPONENT_NAME} ${GPGME_VANILLA_LIBRARIES})

ОБНОВИТЬ

Если я не рекомендую линию

//gpgme_check_version (NULL);

сообщение исчезает. Я проверил документацию. Подпись метода швов должна быть действительной. Может быть что-то не так с версией библиотеки, которую я использую?


РЕДАКТИРОВАТЬ:

Это не ошибка компилятора, а просто красная метка, заданная создателем qt. Я предположил бы, что это должно быть вызвано опечаткой или чем-то. Но я не вижу никакой опечатки. Более того, приложение компилируется и запускается, даже если я не закомментировал check_version линия.

0 ответов

Другие вопросы по тегам