将 openCV .dll 文件添加到 Netbeans C++ Qt 应用程序
Posted
技术标签:
【中文标题】将 openCV .dll 文件添加到 Netbeans C++ Qt 应用程序【英文标题】:Adding openCV .dll files to Netbeans C++ Qt application 【发布时间】:2014-01-24 15:57:06 【问题描述】:我正在开发需要使用 NetBeans 下的 OpenCV 库的软件。花了 2 天的时间才能使用 OpenCV 正确运行 C++ 应用程序。
在 C++ 应用程序中,我需要在项目属性中添加 C:/OpenCV245/build/include->Build->C++ 编译器->包括目录和头文件。此外,在链接器属性-> 附加库目录下,我必须添加以下目录
C:/OpenCV245/release/lib
C:/OpenCV245/build/x64/mingw/lib
并在链接器->库中添加我特别需要的 .dll 文件
现在,当我尝试创建 C++ Qt 应用程序时,我添加了正确的包含目录和头文件,但我无法将路径添加到我的“其他库”...
我尝试构建以查看会弹出什么错误:
找不到-lopencv_core245.dll 找不到-lopencv_highgui245.dll
我们如何将 .dll.a 文件添加到 Netbeans 下的 C++ Qt 应用程序中?
编程环境:
NetBeans 7.4
MinGW 3.2 Compiler c++ 编译器、msys make 命令和 qt5.1.1 qmake for Qmake 命令
Qt5.1.1
OpenCV2.4.5
Windows 8 64 位
【问题讨论】:
【参考方案1】:您似乎在尝试链接 *.DLL 文件而不是 *.LIB 文件。正确的做法是:
-
在链接器->库设置中,链接到您需要的 *.LIB 文件,而不是 *.DLL 文件。
编译程序以获得 *.EXE
将相关的 *.DLL 文件放在与 *.EXE 相同的文件夹中
如果您在文件浏览器中双击该程序的图标,该程序现在就可以运行了。
如果程序拒绝从 Netbeans 运行,但它可以从文件浏览器运行,那是因为当您在调试模式下启动程序时,您需要告诉 Netbeans “当前工作目录”是什么。此设置应在某些设置对话框中可用。
【讨论】:
感谢您的回复,与库一起提供的 lib 文件已编译为与 Visual Studio 一起使用。我不得不从头开始编译源文件,所有可用的都是 .dll 文件 Lib 文件未编译为与特定的 IDE 或编译器一起使用。唯一的区别在于为不同的操作系统或计算机架构(即 32 位与 64 位系统)编译它们。如果 lib 文件是在您的系统上编译的,大多数情况下使用任何编译器,那么它们应该可以工作。 OP 没有链接到.DLL
文件。 OP 链接到.a
文件。例如libopencv_highgui245.dll.a
@moskito-x 谢谢,但是当我添加它们时,编译器找不到它们。我以与问题中提到的相同方式放置 .dll.a ,但它不起作用。它在 netbeans 下的 C++ 应用程序中工作,但是当我在 C++ QT 应用程序中尝试时,它失败了【参考方案2】:
+在 Project Properties-> Build -> Qt 下转到 Expert Custom Definitions 添加使用 LIBS += 的适当 .dll.a 文件的路径
+在Include Directories and Headers中的Project Properties-> Build -> C++ Compiler 下添加适当的包含路径。例如:C:\OpenCV\build\include
+在 Project Properties-> Build -> Linker 下单击 Libraries,然后单击 Add Library File...(NOT ADD LIBRARY)并添加第一个中包含的适当 .dll.a 文件点。
【讨论】:
以上是关于将 openCV .dll 文件添加到 Netbeans C++ Qt 应用程序的主要内容,如果未能解决你的问题,请参考以下文章