在msvc8上测试后,我发现:
在进入main()之前调用这三个东西.
我的问题是:
我在使用QT支持构建OpenCV_HighGui220d.lib时遇到问题.问题是关于QMetaObject的未解决的符号,例如:
public: virtual struct QMetaObject const * __thiscall GuiReceiver::metaObject(void)const (?metaObject@GuiReceiver@@UBEPBUQMetaObject@@XZ)
Run Code Online (Sandbox Code Playgroud)
我的环境:
- Visual Studio 2010
- OpenCV 2.2
- QT SDK版本:4.7.3
下面是我的构建步骤:
1.使用CMake打开C:\OpenCV2.2,检查WITH_QT和WITH_QT_OPENGL,生成vcxproj和sln文件.
2.在下面添加以下宏cvconfig.h:
#define HAVE_QT
#define HAVE_QT_OPENGLRun Code Online (Sandbox Code Playgroud)#define QT_LARGEFILE_SUPPORT
#define QT_DLL
#define QT_GUI_LIB
#define QT_CORE_LIB
#define QT_HAVE_MMX
#define QT_HAVE_3DNOW
#define QT_HAVE_SSE
#define QT_HAVE_MMXEXT
#define QT_HAVE_SSE2
#define QT_THREAD_SUPPORTRun Code Online (Sandbox Code Playgroud)我还尝试用QT_NODLL替换QT_DLL,但没有成功.4. 在"链接器属性"页面的"其他库目录"中添加目录.5.在附加依赖项中添加以下库:
C:/QtSDK/Desktop/Qt/4.7.3/msvc2008/libqtmain.lib
qtmaind.lib
QtGui4.lib
QtGuid4.lib
QtCore4.lib
QtCored4.lib
QtOpenGL4.lib
QtOpenGLd4.lib
Qt3Support4.lib
Qt3Supportd4.lib
QtHelp4.lib
QtHelpd4.lib
QtDesigner4.lib …Run Code Online (Sandbox Code Playgroud)