Unable to compile this
-
OS: Win7 x64
Compiler: mingw64
QT: 4.7.4 x64
IDE: CodeBlocksInclude directories:
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QT
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QTGui
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QTCorecommon.h
[code]
#ifndef COMMON_H_INCLUDED
#define COMMON_H_INCLUDED#include <QWidget.h>
#include <QtGui/QMainWindow.h>
#include <QtGui/QStatusBar.h>
#include <QtGui/QVector2D.h>
#include <QtGui/QVector3D.h>
#include <QtGui/QVector4D.h>
#include <QtGui/QShowEvent>
#include <d3dx9.h>
#include <string>
#include "tinyxml.h"
#include "util/util.h"#endif // COMMON_H_INCLUDED
[/code]DXWidget.h
[code]
#ifndef DXWIDGET_H
#define DXWIDGET_H#include "common.h"
#include "camera/camera.h"class DXWidget : public QWidget
{
public:
DXWidget( QWidget *parent = 0, Qt::WindowFlags flags = 0 ) : QWidget( parent, flags )
{
setAttribute(Qt::WA_PaintOnScreen);
setAttribute(Qt::WA_NoSystemBackground);m_standBy = false; m_lastRendered = 0; m_iCurCam = 0; m_bDeviceLost = false; } virtual ~DXWidget(); virtual void setVisible(bool visible)
{
if(visible)
{
QWidget::setVisible(visible);
//initialize();
}
else
{
//uninitialize();
QWidget::setVisible(visible);
}
}virtual HRESULT initialize() = 0;
virtual void uninitialize() = 0;virtual HRESULT restoreDeviceObjects() = 0;
virtual HRESULT invalidateDeviceObjects() = 0;virtual void setTime(DWORD dwTime)
{
m_dwTime = dwTime;
}virtual HRESULT render()
{
return S_OK;
}virtual HRESULT present()
{
return S_OK;
}virtual void initCamera()
{}
virtual void initModels()
{
}virtual void initEffects()
{
}virtual void update()
{
}void setAspect(float aspect)
{}
void perspective(float fovx, float aspect, float znear, float zfar)
{}
void moveCamera(float dx, float dy, float dz)
{}
void rotateCamera(float headingDegrees, float pitchDegrees, float rollDegrees)
{}
void zoomCamera(float zoom)
{}
void lookAtCamera(const D3DXVECTOR3 &eye, const D3DXVECTOR3 &target, const D3DXVECTOR3 &up)
{}
signals:
void setCameraTranslate(QVector3D);
void setCameraRotate(QVector3D);
void setCameraScale(QVector3D);
void setCenterOfInterest(double);
void setAngleOfView(double);
void setNearClipPlane(double);
void setFarClipPlane(double);public slots:
void cameraTranslateChanged(QVector3D p)
{
//m_camera->setTarget(vmVector3(p.x(), p.y(), p.z()));
update();
}void cameraRotateChanged(QVector3D p)
{
//m_camera->setEulerAngle(vmVector3(btRadians(p.x()), btRadians(p.y()), btRadians(p.z())));
update();
}void cameraScaleChanged(QVector3D p)
{
}void angleOfViewChanged(double value)
{
//m_camera->setFovx(value);
update();
}void nearClipPlaneChanged(double value)
{
//m_camera->setZnear(value);
update();
}void farClipPlaneChanged(double value)
{
//m_camera->setZfar(value);
update();
}void centerOfInterestChanged(double value)
{
//m_camera->setCenterOfInterest(value);
update();
}
protected:
private:
Camera m_camera[NO_CAMS];//! if stand-by mode bool m_standBy; // indicate the device has been lost bool m_bDeviceLost; //! Last updated time DWORD m_lastRendered; //! Clicked mouse position QPointF m_clickPos; //! Time DWORD m_dwTime; __int64 prevTimeStamp; float secsPerCnt; int m_iCurCam;
};
#endif // DXWIDGET_H
[/code]Errors:
||=== Build: Debug in PerfectSim2 (compiler: mingw64) ===|
........\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\Qt\QWidget.h|3|warning: #warning "Inclusion of header files from include/Qt is deprecated." [-Wcpp]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3d9types.h|25|warning: ignoring #pragma warning [-Wunknown-pragmas]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3d9types.h|2411|warning: ignoring #pragma warning [-Wunknown-pragmas]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3d9.h|2025|warning: "/" within comment [-Wcomment]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3d9.h|2026|warning: "/" within comment [-Wcomment]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3dx9math.h|19|warning: ignoring #pragma warning [-Wunknown-pragmas]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3dx9math.h|1792|warning: ignoring #pragma warning [-Wunknown-pragmas]|
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\include\d3dx9core.h|669|warning: multi-line comment [-Wcomment]|
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QtGui......\qt-everywhere-opensource-src-4.7.4\src\gui\widgets\qtabwidget.h|60|error: invalid use of incomplete type 'class QWidget'|
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QtGui......\qt-everywhere-opensource-src-4.7.4\src\gui\kernel\qwindowdefs.h|56|error: forward declaration of 'class QWidget'|
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QtGui......\qt-everywhere-opensource-src-4.7.4\src\gui\widgets\qtabwidget.h|162|error: 'QShowEvent' has not been declared|
E:\Software\Q\qt-4.7.4\4.7.4-qt-x64-build\include\QtGui......\qt-everywhere-opensource-src-4.7.4\src\gui\widgets\qtabwidget.h|163|error: 'QResizeEvent' has not been declared|
....Any ideas why these errors would happen?
Thanks
Jack -
You shouldn't be using .h includes. Use <QWidget>, <QMainWindow> etc. instead of <QWidget.h>, <QtGui/QMainWindow.h>.
But I don't think that's the problem. The errors are in QTabWidget header and I don't see any tab widget in what you posted, so do you have any tab widgets in your code? Probably just some missing include.
-
It seems like you are compiling Qt code directly and not with qmake? I don't know if that can lead to any problems but with this you can't use any of the Qt meta programming stuff (signals/slots, properties, etc) at least. Just a note. :)
what do you want to do with Qt? to me it looks like you are just using the windowing system to display your DirectX stuff with a QMainWindow right? I don't know if that works like this.
-
Okay, thanks, I'll make some changes.
Have a great day!