8

在 Embarcadero RAD Studio 2010 中,静态库的项目选项中有一个设置,称为“动态 RTL”。(它在 TLib 部分。)

我的印象是,关于是动态链接还是静态链接 RTL 的决定是在链接时做出的,而不是在编译时做出的。但是静态库只能编译;没有链接步骤。那么,更改此选项如何影响我的静态库?

我有一些使用这些静态库的 .exe 和 .dll 项目,我在这些项目中设置了“动态 RTL”选项。这是有道理的,因为它们实际上有一些要链接的东西,但我不明白这个设置对静态库有什么影响。

如果静态库具有动态 RTL = true 而使用此库的 DLL 和 EXE 具有动态 RTL = false,是否会导致任何问题?

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 回答