コンパイル時にlibEXAMPLE.so(so.leフォルダー内)と呼ばれる共有オブジェクトと、EXAMPLE.so(dllフォルダー内)という名前のdllを構築するライブラリがあります。2 つの共有オブジェクトはサイズが非常に似ており、まったく同じものに見えます。インターネットを精査すると、プログラムが dll を使用してシンボル解決を行う方法と、共有オブジェクトを使用して行う方法に違いがある可能性があることが明らかになりました。
これを理解するのを手伝ってくれませんか?
コンパイル時にlibEXAMPLE.so(so.leフォルダー内)と呼ばれる共有オブジェクトと、EXAMPLE.so(dllフォルダー内)という名前のdllを構築するライブラリがあります。2 つの共有オブジェクトはサイズが非常に似ており、まったく同じものに見えます。インターネットを精査すると、プログラムが dll を使用してシンボル解決を行う方法と、共有オブジェクトを使用して行う方法に違いがある可能性があることが明らかになりました。
これを理解するのを手伝ってくれませんか?
「DLL」は、Windowsが動的ライブラリに名前を付ける方法です
「SO」は、Linuxが動的ライブラリに名前を付けるのが好きな方法です
どちらも同じ目的を持っています: 動的に読み込まれます。
Windows は PE バイナリ形式を使用し、Linux は ELF を使用します。
PE: http://en.wikipedia.org/wiki/Portable_Executable
ELF: http://en.wikipedia.org/wiki/Executable_and_Linkable_Format