小编Mik*_*toH的帖子

什么在main()之前运行?

在msvc8上测试后,我发现:

  1. 将GetCommandLine()解析为argc和argv
  2. 标准C库初始化
  3. C++全局变量的构造函数

在进入main()之前调用这三个东西.

我的问题是:

  1. 当我将程序移植到不同的编译器(gcc或armcc)或不同的平台时,这个执行顺序会不同吗?
  2. 标准C库初始化有什么作用?到目前为止,我知道setlocale()是必须的.
  3. 在全局变量的C++构造函数中调用标准C函数是否安全?

c++

12
推荐指数
2
解决办法
1886
查看次数

在使用QT支持构建OpenCV时,未解析的符号QMetaObject

我在使用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_QTWITH_QT_OPENGL,生成vcxproj和sln文件.

2.在下面添加以下宏cvconfig.h:

#define HAVE_QT
#define HAVE_QT_OPENGL
Run Code Online (Sandbox Code Playgroud)
3.将window_QT.cpp添加到VS2010中的opencv_highgui.vcxproj文件中,并在window_QT.cpp中添加以下宏
#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_SUPPORT
Run Code Online (Sandbox Code Playgroud)我还尝试用QT_NODLL替换QT_DLL,但没有成功.4. 在"链接器属性"页面的"其他库目录"中添加目录.5.在附加依赖项中添加以下库:

C:/QtSDK/Desktop/Qt/4.7.3/msvc2008/lib

qtmain.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)

qt opencv

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

opencv ×1

qt ×1