【发布时间】:2015-10-16 13:03:19
【问题描述】:
我们知道,在链接静态库时,链接器会将相关代码从 .a 文件复制到可执行的二进制文件中。并且在链接动态库时,链接器只是将它在 .lib 文件(在 Windows 下)中找到的函数的地址复制到二进制文件中,而不复制函数本身。在运行时,操作系统加载dll,程序根据地址运行代码。问题是,我可以使用 .lib 文件和 dll 来静态链接动态库吗?链接器从 .lib 中读取地址,然后将相关代码从 dll 复制到二进制文件中。它应该工作,对吧?
【问题讨论】:
-
提醒一下,检查库是否为 LGPL。并在实际操作之前理清所有法律问题。
-
也许如果您编写自己的工具链来执行此操作,或者互联网上什至有一些东西可以尝试这样做,但肯定不会使用任何标准工具。
-
@MicroVirus 所以你认为这个想法是可能的?
-
@yvbbrjdr 只是理论上,但我从来没有调查过这件事,所以我的想法没有多大分量。
-
@MicroVirus 好的。然后我将编写自己的工具链来进行实验。
标签: c dll static-linking dynamic-library