这是一个超级常见的问题,但它似乎也是最随意的。似乎有一百万种不同的原因可以导致它。
在64位VS2012上在RELEASE
模式下运行构建后,我现在得到opencv_core249.dll
从您的计算机中丢失。
我没有改变我的PATH
目录,我也没有改变我的程序的任何属性。我甚至没有修改任何代码。
任何想法?我重新启动了Visual Studio,但无济于事。此外,它在RELEASE
中构建没有问题;它就是跑不动。它在DEBUG
中工作完美,另一个项目使用完全相同的属性表工作没有问题。
UPDATE:复制并粘贴所有必要的dll到目标输出目录解决了这个问题....但肯定有更好的办法吧?
当你在visual studio中开发程序时,你可以设置像include path
和additional libraries
这样的变量,它们可以在特定项目的属性中找到。这些包含将在整个项目中使用,并允许您拥有正确的库。
当你完成你的开发,你想运行你的exe没有备份的IDE, 这是当你得到这样的错误。
那么为什么会出现这些错误呢?
这与静态和动态链接的区别有关。OpenCV库通常是动态链接的,其中库被赋予一个路径名。
我如何使用库而不复制/粘贴它们?
好吧,你需要转向静态链接,一个比我可以键入更好的解释可以在这里找到。静态链接是编译库到你的可执行文件,所以它有它需要的所有信息,而不必依赖于其他dll文件。