您的计算机错误中缺少DLL

use*_*206 0 c++ visual-studio visual-studio-2015

我有一个很棒的项目.

我创建了一个新的独立 .dll项目,其中包含带有一些导出函数的原始项目(将原点.h.cpp文件复制到新项目中).我从原始项目复制了所有lib依赖项和路径到那些库和其他包含文件.它的设置相同.

新程序编译但问题是,当我尝试运行代码时,我得到了错误信息:

The program can't start because xxx.dll is missing from your computer. Try reinstalling the program to fix this problem.

xxx.lib是在Additional dependencies名单及其不是第一个:

Additional Dependencies: aaa.lib; bbb.lib; ccc.lib; xxx.lib, zzz.lib

我想VS发现了前三个,.lib否则我会得到一些错误信息..那么为什么不能找到xxx.lib呢?.lib同一文件夹中的所有文件..

谢谢.

Cod*_*ray 5

您似乎误读了错误消息.它说:

程序无法启动,因为您的计算机缺少xxx.dll.尝试重新安装该程序以解决此问题.

注意它说xxx.缺少dll,而不是xxx.lib!

在Windows上,LIB文件通常在使用DLL时用作链接器的辅助.LIB包含DLL提供的函数的导入存根.构建二进制文件时需要LIB文件; 您不需要计算机上的LIB文件来运行生成的二进制文件.但是,你确实需要DLL!

这可能令人困惑的原因是,如果要静态链接目标文件,则只需要LIB.它包含所有代码,并且不需要DLL.但这不是您正在使用的策略.链接器使用xxx.lib文件来安排EXE动态链接到xxx.dll.因此,EXE需要存在DLL才能运行它.

将xxx.dll复制到与EXE相同的文件夹中,然后再次启动该应用程序.这与您的编译器/链接器/构建设置无关.