尝试使用DLL时出现Lib错误

时间:2014-06-02 21:54:28

标签: c++ dll

我正在尝试创建自己的dll并在另一个项目中使用它。我遵循了microsoft tutorial

我的问题是,当我构建调用我的dll文件的测试项目时,我收到此错误

LINK : fatal error LNK1104: cannot open file 'C:\Users\...\wrapperOpenCV.lib

我不明白为什么程序期望lib,因为我只构建了一个dll。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

lib文件只是您可执行文件与DLL.之间的中间人。它被称为隐式链接所需的import library

引用MSDN:(http://msdn.microsoft.com/en-us/library/9yd93633.aspx

  

使用隐式链接,使用DLL的可执行文件链接到导入   DLL的制造商提供的库(.lib文件)。经营   系统在加载使用它的可执行文件时加载DLL。

答案 1 :(得分:1)

链接到DLL的编译时链接过程是:

  1. 构建DLL。除其他外,这将输出DLL本身和导入库,.lib文件。
  2. 编译使用DLL的程序。这将使用声明DLL导出的类型和函数的include文件。
  3. 链接在步骤1中生成的导入库。这提供了DLL导出的函数的定义。
  4. 您要求链接器链接导入库,但未找到它。要么它没有被创建,要么链接器正在寻找错误的位置。