根据此question,
动态链接在运行时由操作系统完成。
到目前为止,使用g ++与eclipse CDT,我静态链接odbc32.lib我从Windows SDK获得一些ODBC函数到我的程序。但我偶然删除了该文件,并惊讶地发现我的程序仍在运行并连接到数据库。由于文件不再存在我指定给-L选项的路径,我认为它必须仍然存在于路径的一个子文件夹中。但后来我删除了库路径,看看会发生什么,但我的程序仍然有效!我开始搜索odbc32.lib,我真的找不到它。但是,我确实找到了位于C:\ Windows \ System32中的odbc32.dll文件,我认为它可能会动态链接到我的程序。
我是对的吗?这是动态链接的一个例子吗?
注意:我也从我的路径中删除了C:\ Windows \ System32,但由于某种原因,它仍在工作。
答案 0 :(得分:0)
根据您的评论,您声明自己正在使用g++
cygwin
。基本上这意味着链接现在完成,因为它在linux(或unix或其他)上,并且需要一个库。在你的情况下,这是静态库,因此它在编译时链接,并且不再需要它。