単一の DLL (プラグイン システム用) をコンパイルするためのメイクファイル テンプレートがあります。ユーザーのメイクファイルは次のようになります。
EXTRA_SRCS=file1 file2
include makefile.in
私が持ってmakefile.in
いる:
plugin.dll: plugin.os $(patsubst %,%.os,$(EXTRA_SRCS))
plugin.os
コンパイルするメインの C++ ファイルはどこにありますか。ところで、末尾のファイルは.os
、共有ライブラリ用にコンパイルされたオブジェクト ファイルです (つまり、 with の-fpic
オプションを使用gcc
) 。
ここでの問題は、余分なソースがおそらく (必ずしもそうとは限りませんが) ヘッダー ファイルになることです。plugin.os
理想的には、それらをターゲットとの依存関係として追加したいと思いますがfile.cpp
、それらが存在する場合に限ります。
この方法は、Windows と Linux の両方で機能するか、少なくともそれぞれに適応できる必要があります。ただし、GNU バージョンの make しか使用していません。