【发布时间】:2017-07-05 18:10:26
【问题描述】:
从 MySQL 网站 here 的一个页面中看到以下段落:
您可以使用 C 或 C++(或其他可以使用 C 的语言)编写插件 调用约定)。插件是动态加载和卸载的,所以 你的操作系统必须支持动态加载并且你必须有 动态(非静态)编译调用应用程序。为了 服务器插件,这意味着必须编译 mysqld 动态。
动态编译是什么意思?我知道动态链接,但我不确定动态编译是什么意思。
另外,在 Windows 10 (x64) 上,如何确保 exe 已动态编译?是否可以从 dumpbin 的输出中找出答案?以下是 mysqld.exe(5.7 版)的 dumpbin 输出:
注意:我查看了this old question,它没有为我提供那么多信息。它建议的依赖工具不再在 Windows 上。
【问题讨论】:
-
也许他们在谈论动态链接的 CRT 与静态链接的 CRT。
-
@drescherjm 也许,我从来没有想过。谢谢。
-
@drescherjm 例如,如果内存由插件分配但随后由应用程序释放,则这是一个问题,反之亦然。如果您不以这种方式越界,您应该可以静态链接到 CRT。
-
@DavidSchwartz 我想询问您刚才描述的问题的详细信息/含义,但不想影响我的欢迎!
标签: windows dll dumpbin depends