1

从这里的 MySQL 网站上的一个页面中看到以下段落:

您可以使用 C 或 C++(或其他可以使用 C 调用约定的语言)编写插件。插件是动态加载和卸载的,因此您的操作系统必须支持动态加载,并且您必须动态(而不是静态)编译调用应用程序。对于服务器插件,这意味着mysqld 必须动态编译

动态编译是什么意思?我知道动态链接,但我不确定它们对动态编译意味着什么。

此外,在 Windows 10 (x64) 上,如何确保 exe 已动态编译?是否可以从 dumpbin 的输出中找出答案?以下是 mysqld.exe(5.7 版)的 dumpbin 输出:

在此处输入图像描述

注意:我查看了这个旧问题,它没有为我提供那么多信息。它建议的依赖工具不再在 Windows 上。

4

1 回答 1

2

动态编译只是意味着您正在编译代码,以便编译后的输出适合动态链接。

在 Windows 上,创建为 DLL 的过程必须将其编译为适合动态链接,因为 DLL 始终是动态链接的。

我相信今天的大多数平台总是动态编译并产生可重定位的输出,即使它们随后是静态链接的。

于 2017-07-05T18:12:36.940 回答