缺少 .lib 文件,动态链接混乱

missing .lib file, Dynamic linking confusion

据此question,

Dynamic linking is done at run time, by the operating system.

直到现在,我在 eclipse CDT 中使用 g++,我静态地 linked odbc32.lib 我从 windows SDK 获得一些 ODBC 函数到我的程序。但我不小心删除了文件,惊讶地发现我的程序仍在 运行ning 并连接到数据库。由于该文件不再存在于我为 -L 选项指定的路径中,我认为它一定仍然存在于该路径的子文件夹之一中的某个位置。但是后来我删除了库路径以查看会发生什么,但我的程序仍然有效!我开始搜索odbc32.lib,但我真的找不到。但是,我确实在 C:\Windows\System32 中找到了一个 odbc32.dll 文件,我认为它可能会动态 link 编辑到我的程序中。

我说的对吗?这是动态 linking 的例子吗?

注意:我还从我的路径中删除了 C:\Windows\System32,但由于某种原因,它仍然有效。

根据您的评论,您说您正在使用 g++cygwin。基本上这意味着链接现在已经完成,就像在 linux(或 unix 或其他)上一样,并且需要一个库。在您的情况下,这是静态库,因此它在编译时链接并且不再需要它。