微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 更改静态库的“动态RTL”设置有什么影响?

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

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

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

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

解决方法

我不使用Embarcadero,而是使用旧版本的C Builder.我认为他们的工作方式相同.当您使用动态RTL时,您的代码将从程序附带的运行时DLL中调用RTL函数.如果不使用动态RTL,则会将函数从lib复制到exe或lib文件中.我使用动态RTL减小EXE文件的大小. exe或libs的逻辑是相同的.这意味着如果您在任何模块中使用动态RTL,无论是exe还是lib,您都必须运送相应的运行时DLL.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐