これは私が盲目的に受け入れ、「あるがまま」として従ったものです。その背後にある「理由」をより深く理解しようとしています。
- 静的ライブラリ LibA - いくつかの C ランタイム呼び出しを利用します
- スタティック ライブラリ LibB - いくつかの C ランタイム コールを利用
- 実行可能アプリ - LibA、LibB、および一部の C ランタイム呼び出しを利用
ここにかなり詳しく文書化されており、リンカーの特定の呼び出しに渡されたすべてのモジュールが同じランタイム ライブラリ コンパイラ オプションでコンパイルされている必要がある他の多くの場所があります。
こことここで説明されているように、アプリの最終リンク中にすべてのシンボル解決が実行される場合、なぜそうなるのでしょうか? LibA と LibB がビルド時に使用する特定のランタイム ライブラリを指定する必要があるのはなぜですか? 彼らが使用する C ランタイム呼び出しは、ランタイム アプリがそのリンクに指定するものに対して解決するべきではありませんか?
これは他の C 開発環境の問題ですか、それとも Visual Studio 固有の問題ですか?