我需要用汇编语言编写数百个函数。它们将静态链接到可执行文件中。我只希望实际引用的函数包含在可执行文件中。
我可以通过将每个函数放入单独的汇编程序文件中,组装每个文件,从所有生成的对象创建一个 .lib,然后链接该 .lib 来实现此目的。由于 C 编译器支持函数级链接,我觉得应该有一种方法可以在单个汇编文件中执行此操作。
每个函数都会有一小块静态数据。同样,只有在引用使用它的函数时才应包含它。
它必须是静态链接的。将所有内容放入 dll 中并不是一个选项。
如果运行
ML64.exe /?
我们可以得到输出中的下一行:
/Gy[-] separate functions for linker
与/Gy(启用功能级链接)