Я компилирую и связываю с помощью:
Код: Выделить всё
cxxflags=-fPIC -fvisibility=hidden
cflags=-fPIC -fvisibility=hidden
linkflags=-fPIC -static-libstdc++ -static-libgcc
Моя библиотека компилируется и компонуется без ошибок, а набор тестов имеет зеленый цвет. Однако когда я вызываю его из Python (используя ctypes), он может аварийно завершить работу, если некоторые модули Python были импортированы ранее, например greenlet или scikit-learn. Сбой, по-видимому, связан с манипулированием строками: преобразованием чисел в строки.
Как ни странно, если я использую LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6 python ... для запуска моего сценария Python, он не дает сбоя (т. е. предварительно загружает libstdc++ из системы).
Такое поведение появилось недавно, возможно, связано с обновлением Linux распространение.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ed-libstdc
Мобильная версия