web-dev-qa-db-ja.com

Linuxで.dllを使用できる

質問: Linuxで.dllファイルを使用してプログラムをコンパイルすることは可能ですか?

これがどこに行くのか:この.dllは、サードパーティからのいくつかのプロプライエタリソフトウェアにphp拡張機能を書き込むために使用されます。

背景と研究:

proprietary.libというライブラリが提供されました。 .lib拡張機能を今まで見たことがなかったので、興味があったので、次のように入力しました。

file proprietary.lib

出力は次のとおりです。

proprietary.lib:  current ar archive

調査したところ、arが多かれ少なかれtarであることがわかりました(実際、tarは、ほとんどの場合arに取って代わったと思います* nix環境)。

arのマンページを調べたところ、t optionが表示され、そのアーカイブの内容の一覧表が表示されています。涼しい。だから私はタイプします:

ar t proprietary.lib

そして得る:

proprietary.dll
proprietary.dll
... (snip X lines) ...
18
random_hero

arファイル(Debianパッケージはarファイル、fwiw)を抽出して、その内容に対してfileを実行してみてください。

翻訳なしでWindows DLLを使用することはできません。 Linuxでネイティブに動作することがわかっている唯一のDLLファイルはMonoでコンパイルされています。

誰かがコード化する独自のバイナリライブラリを提供した場合は、それがターゲットアーキテクチャ用にコンパイルされていること(am ARMバイナリをx86システムで使用することなど)と、Linux用にコンパイルされていることを確認する必要があります。 。

言われていること...幸運。ドキュメントandソースがあるサードパーティライブラリに対するプログラミングは嫌いです。

7
Broam

最近の開発により状況が変わった可能性があります。Linuxには loadlibrary 関数があり、Windows DLLをロードして関数を呼び出すことができます。

したがって、.dllファイルが実際にはWindows DLLである場合、ソフトウェアでそれを使用する方法が見つかるかもしれません。

10
Ber

.dllファイルは通常、Windows共有ライブラリです。 (Linux上の誰かが通常のLinuxライブラリを構築し、何らかの理由でそれを.dllと呼んでいる可能性もあります。)

Wine を使用してそれらに対してリンクできる可能性があります。これに対するサポートは実験的なものでした-私はその現在の状態を知りません。

8
Martin Beckett

はい、私たちはワインの助けを借りてdllを使用することができます。 Linuxにwine64をインストールするだけです

Sudo apt-get install wine64
0

通常DLLファイルはWindowsのリンクライブラリであるため、Linuxで直接実行することはできませんが、.NET Coreを使用するLinux専用のDLLファイルをコンパイルすることは可能です。

0
Sasinosoft