我正在尝试使用OpenCV(计算机视觉库),它显然使用位于C:\OpenCV\bin
的几个.dll文件(已添加到系统PATH
变量中)。但是,如果我尝试运行一个简单的测试程序,则会出现系统错误:
程序无法启动,因为您的计算机缺少highgui.dll。尝试重新安装该程序以解决此问题。
如果我将highgui.dll
文件复制到system32
文件夹中,它可以正常工作,但我不想将所有必需的.dll文件放在system32
文件夹中。
有谁知道为什么无法找到.dll文件或我应该怎么做才能修复它?
(我已经检查了PATH
变量中的所有路径的有效性。)
答案 0 :(得分:1)
我在运行并启动它之前跟踪了Netbeans构建的可执行文件,它没有给出错误(因此Netbeans可能使用自己的路径执行),所以试图找出如何使Netbeans搜索正确的路径对于DLL,在添加环境变量PATH = C:/OpenCV2.1/bin (项目属性>运行>环境)之后,程序运行正常!
我希望这不是某种黑客攻击“偶然”解决我的问题,同时产生更糟糕的副作用......
谢谢你的帮助!
答案 1 :(得分:0)
您是否尝试过将highgui.dll复制到您的构建文件夹中。由于它是动态链接的,你的程序会在本地查找它,如果它没有被复制到你的构建目录中,它将无法找到它。
答案 2 :(得分:0)
如何启动程序以及如何更新PATH变量?
如果在命令窗口中更新路径,但是从IDE或Windows桌面启动应用程序,则启动进程的环境可能具有与命令窗口环境不同的PATH设置。
同样,如果您更改系统控制面板小程序中的PATH,它可能不会影响您在进行PATH编辑之前启动的IDE或命令窗口。
答案 3 :(得分:0)
我正在使用OpenCV 2.2和Visual Studio 10.创建一个新项目我执行以下步骤... 1.VC ++目录 - >包含目录 - > C:\ OpenCV2.2 \包括 图书馆目录 - > C:\ OpenCV2.2 \ LIB 2.C / C ++ - >一般 - >其他包含目录 - > C:\ OpenCV2.2 \ bin 3.Linker - >输入 - > opencv_core220.lib; opencv_highgui220.lib; opencv_calib3d220.lib; opencv_contrib220.lib; opencv_features2d220.lib; opencv_ffmpeg220.lib; opencv_flann220.lib; opencv_gpu220.lib; opencv_imgproc220.lib; opencv_legacy220.lib; opencv_ml220.lib; opencv_objdetect220.lib; opencv_ts220。 LIB; opencv_video220.lib;
答案 4 :(得分:0)
我使用Visual Studio 12遇到了这个问题,并且在检查后确保我的PATH
中第十次没有拼写错误时,我注意到前一个路径的分号后面有一个空格。我删除它,Visual Studio能够找到我需要的DLL。
如果您的PATH
变量中存储了多个路径,请确保它们用分号分隔无空格。