8

Embarcadero RAD Studio 2010 では、「ダイナミック RTL」と呼ばれるスタティック ライブラリの [プロジェクト オプション] に設定があります。(これは TLib セクションにあります。)

RTL を動的にリンクするか静的にリンクするかは、コンパイル時ではなくリンク時に決定されるという印象を受けました。ただし、静的ライブラリはコンパイルのみです。リンクステップはありません。では、このオプションを変更すると静的ライブラリにどのような影響がありますか?

これらの静的ライブラリを使用する .exe および .dll プロジェクトがいくつかあり、それらのプロジェクトで「動的 RTL」オプションを設定します。実際にリンクするものがあるため、これは理にかなっていますが、この設定が静的ライブラリに与える影響はわかりません。

このライブラリを使用する DLL および EXE が Dynamic RTL = false であるのに、静的ライブラリが Dynamic RTL = true である場合、問題が発生する可能性はありますか?

4

1 に答える 1

7

Embarcadero は使用していませんが、古いバージョンの C++ Builder を使用しています。私は彼らが同じように働くと思います。ダイナミック RTL を使用すると、コードは、プログラムに同梱されているランタイム DLL から RTL 関数を呼び出します。動的 RTL を使用しない場合、関数はライブラリから exe または lib ファイルにコピーされます。動的 RTL を使用して、EXE ファイルのサイズを縮小します。ロジックは、exe または libs で同じです。つまり、動的 RTL を任意のモジュール (exe または lib) で使用する場合、適切なランタイム DLL も出荷する必要があります。

于 2012-09-27T21:06:51.183 に答える