さまよい さんが書きました:
Q1. DLLを生成するために、必ずLIBも同時に生成されますね(同名?)。
__declspec(dllexport) をソースに記述せず、かつ、DLL
生成時にリンクオプションの /EXPORT を指定しなかった
場合は、.libファイルは生成されません。ただし、生成
された .dllファイルは何もエクスポートしないので
使い道がありません。
さまよい さんが書きました:
これはLINUX系においても同じでしょうか。
Linux においては、説明済みです。
.soファイルを作成したとき、.aファイルは作成されません。
実行ファイル生成時に .soファイルを指定すると、
dlopen なしで、.dllファイル内の関数を呼び出せます。
さまよい さんが書きました:
Q2. 通常DLLに入れられた関数は当然「 エクスポート」のためだと思いますが、
なぜその名前を一つ一つ列挙しなければならないのでしょうか。
DLL内部だけで使いたい関数があるかもしれません。
さまよい さんが書きました:
エクスポートする関数名がたくさんあるときは.defファイルに指定することは便利ですが、
これはLINUX世界においても同じやり方でしょうか。
Linux でエクスポートは聞いたことがありません。
static でない関数は全部呼び出し可能なんだと思いますが、
調べてみないと分かりません。
質問です。
Windows で DLL を作成する環境をお持ちですか?
Linux で shared library を作成する環境をお持ちですか?
最初の回答の例を自分で試してみましたか?