Вопрос: действительно ли возможно скомпилировать программу на Linux с помощью .dll файла?
Куда это идет: Этот .dll будет использоваться для записи php расширения некоторого собственного программного обеспечения от третьего лица.
Фон и исследование:
Мне дали названную библиотеку proprietary.lib
. Мне было любопытно, поскольку я никогда не видел .lib
расширение прежде, таким образом, я ввел:
file proprietary.lib
Вывод был:
proprietary.lib: current ar archive
Я провел некоторое исследование и нашел это ar
более или менее tar
(и на самом деле, я предполагаю tar
с тех пор заменил ar
в большинстве *отклоняют среды).
После осмотра ar
страница справочника, я видел t option
, который отображает список таблиц содержания того архива.Круто. Таким образом, я ввожу:
ar t proprietary.lib
И доберитесь:
proprietary.dll
proprietary.dll
... (snip X lines) ...
Вы можете попробовать распаковать файл ar
(пакеты Debian - это файлы ar
, fwiw) и запустить файл
о содержимом.
Вы не сможете использовать библиотеки DLL Windows без перевода. Единственные известные мне DLL-файлы, которые изначально работают в Linux, скомпилированы с помощью Mono.
Если кто-то дал вам проприетарную двоичную библиотеку для кодирования, вы должны убедиться, что она скомпилирована для целевой архитектуры (ничего похожего на попытку использовать двоичный файл ARM в системе x86) и что она скомпилирована для Linux.
При этом ... удачи. Я ненавижу программирование против сторонних библиотек, где у меня есть документация и исходный код.
.dll-файлы обычно являются общими библиотеками Windows. (Также возможно, что кто-то в Linux создал обычную библиотеку Linux и по какой-то причине назвал ее .dll.)
Возможно, вы могли бы сделать ссылку против них, используя Wine . Поддержка этого когда-то была экспериментальной - я не знаю ее текущего статуса.