私はDDKを使ってプロジェクトをビルドしています。いくつかのビルドターゲットは小さな内部ライブラリを生成します - 簡単にするため、LibA.lib、LibB.lib、およびLibC.libと呼ぶことにしましょう。しかし、LibAのコードは、LibBとLibCのコードを参照しています。プロジェクトでLibAを使用するには、すべての依存関係を解決するためにLibB.libとLibC.libも含める必要があります。 私がしたいことは、LibA.libを含む必要があるように、LibBとLibCをLibAにリンクすることです。どうすればこれを達成できますか?WinDDKで複数のライブラリを静的にリンク
はLIBAのソースファイルには、次のようなものになります。私はあなたが手動でlink.exe
とライブラリをリンクすることができることを理解
TARGETNAME=LibA
TARGETTYPE=LIBRARY
TARGETPATH=..\lib\$(DDKBUILDENV)
INCLUDES = .; \
..\LibB; \
..\LibC; \
$(CRT_INC_PATH) \
$(SDK_INC_PATH)
SOURCES = LibA_main.cpp \
LibA_file2.cpp \
LibA_file3.cpp
を。例えば、
link.exe /lib LibA.lib LibB.lib LibC.lib
しかし、可能な場合は、ビルドプロセスの後の時点でいくつかのターゲットは、LIBAに依存しているため、私は、LIBAのためのビルドプロセスの一環として、これと同じ効果を達成するためのいくつかの方法をしたいと思います。
ありがとうございます!
これは質問に対する答えではありません。 – bmargulies
非常に遅い返信ですが、実際には@bmarguliesですが、これは質問に対する答えです。 +1。私は、ビルドプロセスの中で、他のライブラリをターゲットライブラリ(LibA)に静的にリンクする方法を探していました。それがまさにこれがしていることです。ただし、LibAにリンクしたいライブラリもビルドプロセスの一部として構築されている場合は、何らかのラッパースクリプトを使用してビルドオーダーを実施せずに作成されたことを保証できないため、競合条件があります。 'build.exe'はビルドを並行して実行します。 – user1354557