首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接QtCreator & OpenCv

链接QtCreator & OpenCv
EN

Stack Overflow用户
提问于 2011-12-19 01:19:50
回答 2查看 1.2K关注 0票数 1

我在连接opencv库(2.3.1)时遇到了问题,无法找到解决方法。我使用的是qtCreator以及预编好的vc10动态库文件。下面是我到现在为止所做的工作:

.pro文件:

代码语言:javascript
复制
TEMPLATE = app
INCLUDEPATH += "E:/opencv/build/include/"
INCLUDEPATH += "E:/opencv/build/include/opencv/"
INCLUDEPATH += "E:/opencv/build/include/opencv2/"

INCLUDEPATH += $$PWD/../opencv/build/x86/vc10
DEPENDPATH += $$PWD/../opencv/build/x86/vc10

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_core231
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_core231d
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_highgui231
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_highgui231d
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_imgproc231
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_imgproc231d
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_calib3d231
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../opencv/build/x86/vc10/lib/ -lopencv_calib3d231d
...

我已经测试了一个应用程序,它使用了opencv中的highgui,它编译并工作得很好,但是当我尝试使用cvPyrDown(来自imgproc_c.h)时,它编译但不能正确地加载库,它用代码-1073741515“意外退出”。我不明白为什么..。正如您从.pro文件中看到的,我链接了imgproc库,就像highgui一样,但是它仍然不能工作!

有什么建议吗?

编辑

好的,问题是visual创建的库具有与g++不同的命名约定,这就是它不能工作的原因。如果这是真的,我仍然无法解释为什么它适用于那些高调的人..有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-23 15:09:17

这是什么版本的Opencv?我建议尝试最新的2.3,使用CMake而不是.pro文件,后者是整个项目的构建系统。

然后,您只需在CMakeLists.txt上文件->open-项目,您就可以查看如何使用CMake设置示例。

如果这是最新的,那么1) highgui使用QT,因此它可能会更好地使用qt创建者,2)在windows上使用.pro的构建可能没有经过测试;对CMake的不可避免的需求也就不足为奇了。

编辑:查看库的CMakeLists.txt文件..。

代码语言:javascript
复制
# CMakeLists.txt for /modules/highgui
 #YV
if (HAVE_QT)
if (HAVE_QT_OPENGL)
    set(QT_USE_QTOPENGL TRUE)
endif()
INCLUDE(${QT_USE_FILE})

SET(_RCCS_FILES src/window_QT.qrc)
QT4_ADD_RESOURCES(_RCC_OUTFILES ${_RCCS_FILES})

SET(_MOC_HEADERS src/window_QT.h )
QT4_WRAP_CPP(_MOC_OUTFILES ${_MOC_HEADERS})

set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} ${QT_LIBRARIES} ${QT_QTTEST_LIBRARY})
set(highgui_srcs ${highgui_srcs} src/window_QT.cpp ${_MOC_OUTFILES} ${_RCC_OUTFILES} )
endif()

if(WIN32)
   if(NOT HAVE_QT)
      set(highgui_srcs ${highgui_srcs} src/window_w32.cpp)
   endif()
  set(highgui_srcs ${highgui_srcs} src/cap_vfw.cpp src/cap_cmu.cpp   src/cap_dshow.cpp)
   if(HAVE_MIL)

    set(highgui_srcs ${highgui_srcs} src/cap_mil.cpp)
endif()
endif()

if(UNIX)
if(NOT HAVE_QT)        
    if(HAVE_GTK)
        set(highgui_srcs ${highgui_srcs} src/window_gtk.cpp)
    endif()
endif()
 ....
endif()

但是“imgproc”的CMakeLists.txt并没有做任何特定的检查.只是把责任推给主要的opencv库:

代码语言:javascript
复制
 define_opencv_module(imgproc opencv_core)
票数 0
EN

Stack Overflow用户

发布于 2011-12-19 07:57:15

那么,您不应该使用MSVC版本的Qt吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8556228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档