Я установил версию 2.2.1 библиотеки liblogicalaccess на Kubuntu 18.04 с CMake 3.17.1 и Conan 1.25.0. Я попытался выполнить инструкции C ++ библиотеки liblogicalaccess и во второй строке кода при запуске программы выдает следующую ошибку:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
./run.sh: line 9: 6781 Aborted (core dumped) bin/./github_console
main. cpp
// my first program in C++
#include <iostream>
#include <logicalaccess/dynlibrary/librarymanager.hpp>
#include <logicalaccess/readerproviders/readerconfiguration.hpp>
#include <logicalaccess/cards/chip.hpp>
int main()
{
std::cout << "Hello World!\n";
// Reader configuration object to store reader provider and reader unit selection.
std::shared_ptr<logicalaccess::ReaderConfiguration> readerConfig(new logicalaccess::ReaderConfiguration());
// Set PCSC ReaderProvider by calling the Library Manager which will load the function from the corresponding plug-in
readerConfig->setReaderProvider(logicalaccess::LibraryManager::getInstance()->getReaderProvider("PCSC"));
}
Первая строка кода, начинающаяся с std :: shared_ptr .., работает нормально, так что это может быть ошибочный код в библиотеке или ошибка версии / совместимости. Вторая строка, вызывающая getReaderProvider, каким-то образом вызывает ошибку. Понятия не имею, где искать исправление этой ошибки. Пришла из эта проблема изначально. Это было исправлено, но по-прежнему зависало в том же коде. Я произвел поиск неисправностей, но безуспешно. Любой совет?
РЕДАКТИРОВАТЬ: Мой CmakeLists.txt: проект (тест)
cmake_minimum_required(VERSION 3.16)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
set(CMAKE_CXX_FLAGS "-I /usr/include/PCSC")
add_executable(test main.cpp)
target_link_libraries(test PUBLIC CONAN_PKG::LogicalAccess)
conanfile.txt:
[requires]
LogicalAccess/2.2.1
[generators]
cmake
[imports]
lib, * -> lib
И для сборки я просто запускаю cmake --build .
в папке project_folder / build.