Я разрабатываю динамическую библиотеку с использованием C++ и использую ctypes в Python для вызова функций из этой библиотеки. Когда я пытаюсь инициализировать absl::Log внутри DLL, я сталкиваюсь со следующей ошибкой:
OSError: exception: access violation reading 0x0000000000000000
Эта проблема возникает только в Windows с MSVC; тот же код отлично работает на macOS с компилятором Clang.
Ниже приведен демонстрационный код, иллюстрирующий проблему.
main.cpp
#include "absl/base/log_severity.h"
#include "absl/log/globals.h"
#include "absl/log/initialize.h"
#include "absl/log/log.h"
#include
#ifdef _WIN32
#define C_API __declspec(dllexport)
#else
#define C_API
#endif
extern "C" {
C_API void initializeAbslLoggingPy() {
LOG(INFO)
Подробнее здесь: https://stackoverflow.com/questions/787 ... on-windows