单独编译osgQt模块 Qt moc

1、新建一个VS2010控制台空工程,修改配置属性->常规->配置类型为动态库(.dll),字符集选择“使用多字节字符集”
2、配置OSG、Qt头文件和库路径
include目录C:\Program Files\OSG3.0.1VS2010X64\include;C:\Qt\build\x64\include;
lib目录 C:\Program Files\OSG3.0.1VS2010X64\lib;C:\Qt\build\x64\lib;
3、在改配置属性->C/C+±>预处理器->预处理器定义添加OSGQT_LIBRARY
4、配置属性->连接器中添加->QtCore4.lib QtGui4.lib QtOpenGL4.lib osg.lib osgWidget.lib osgDB.lib OpenThreads.lib osgViewer.lib osgText.lib osgGA.lib
Debug版本对应QtCored4.lib QtGuid4.lib QtOpenGLd4.lib osgd.lib osgWidgetd.lib osgDBd.lib OpenThreadsd.lib osgViewerd.lib osgTextd.lib osgGAd.lib
5、将osg源文件中的osgQt模块相关头文件和cpp文件拷贝到当前工程中
文件列表如下
Export
GraphicsWindowQt
GraphicsWindowQt.cpp
QFontImplementation
QFontImplementation.cpp
QGraphicsViewAdapter
QGraphicsViewAdapter.cpp
QWebViewImage
QWidgetImage
QWidgetImage.cpp
需要注意的是,QGraphicsViewAdapter这个头文件中有Q_OBJECT宏定义,这个需要Qt的moc.exe进行编译,
而现在此工程不是Qt工程,不会自动调用moc.exe。所以需要手动将QGraphicsViewAdapter这个头文件编译成
moc_QGraphicsViewAdapter.cpp
在cmd中输入进入osgQt的include文件夹
D:\VSProject\osgQt\include>moc QGraphicsViewAdapter -o moc_QGraphicsViewAdapter.cpp
此时文件列表如下
Export
GraphicsWindowQt
GraphicsWindowQt.cpp
moc_QGraphicsViewAdapter.cpp
QFontImplementation
QFontImplementation.cpp
QGraphicsViewAdapter
QGraphicsViewAdapter.cpp
QWebViewImage
QWidgetImage
QWidgetImage.cpp
将moc_QGraphicsViewAdapter.cpp添加到工程中去
编译即可得到osgQt.dll

你可能感兴趣的:(OSG)