Написание оболочки для Python для librsync с ctypes. Как мне скомпилировать librsync для работы на всех системах?

Поэтому я пишу приложение на python, которое требует librsync для более эффективной передачи файлов. Я хочу, чтобы моя оболочка librsync работала так, чтобы, если librsync уже установлена ​​в системе, она использовала это, но в противном случае попробуйте использовать версию, поставляемую с моим приложением. Оболочка в настоящее время работает на Linux с уже установленной librsync, и мне также удалось скомпилировать librsync в DLL, которая работает с оберткой на окнах. Когда я компилирую его в linux в файл.so, я могу переместить его в другие системы linux, и он будет работать, но когда я пытаюсь использовать его во FreeBSD, я получаю ошибку "неверное расположение файлов".

Мне интересно, возможно ли скомпилировать librsync в библиотечный файл, который будет работать кроссплатформенно? (или только во всех * системах NIX). Также, если вы считаете, что есть лучший способ сделать это, пожалуйста, дайте мне знать.

1 ответ

Решение

Как правило, нет, невозможно создать библиотеку C, которая будет бесперебойно работать на разных платформах.

Некоторые системы BSD могут запускать приложения Linux (и, возможно, наоборот), так что вы можете построить все это таким образом, но для этого потребуется поставка Linux Python.

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