ええと、私はWindowsでそれを行ったことがありませんが、それの実用的な先祖として機能した多くのcompile-link-rtl環境でそれを行いました。最初に相互参照なしでスタブ「ターゲット」を作成してからリンクし、次に循環参照を追加してから再リンクします。リンカは通常、循環参照や後続の参照チェーンを気にせず、各参照をそれ自体で解決できることだけを気にします。
したがって、相互に参照する必要があるAとBの2つのライブラリがある場合は、次のようにしてみてください。
- Bへの参照なしでAをリンクします。
- BをAへの参照とリンクします。
- リンクA、参照をBに追加します。
Dykamは良い点を示しています。コンパイルであり、.Netでリンクされていませんが、原則は同じです。相互参照されたソースを、エクスポートされたエントリポイントで作成しますが、1つを除いてすべてが他のソースへの独自の参照をスタブします。アウト。そのようにそれらを構築します。次に、外部参照をスタブ解除して再構築します。これは、特別なツールがなくても機能するはずです。実際、このアプローチは、私がこれまでに試したすべてのオペレーティングシステム(そのうちの約6つ)で機能しました。明らかにそれを自動化する何かが大きな助けになるでしょうが。