hello,when I compile cc in debug mode,It occurs some problem such as:
93 IntelliSense: "void (*)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam)" 类型的实参与 "GLDEBUGPROC" 类型的形参不兼容 e:\study\project\trunk-2.6.2\trunk-2.6.2\libs\qCC_glWindow\ccGLWindow.cpp 605 26 QCC_GL_LIB
错误 65 error LNK1104: 无法打开文件“..\libs\qCC_glWindow\Debug\QCC_GL_LIBd.lib” E:\study\project\trunk-2.6.2\cmake\ccViewer\LINK ccViewer
错误 92 error LNK1104: 无法打开文件“..\libs\qCC_glWindow\Debug\QCC_GL_LIBd.lib” E:\study\project\trunk-2.6.2\cmake\qCC\LINK CloudCompare
错误 32 error C2664: “void (GLDEBUGPROC,void *)”: 无法将参数 1 从“void (__cdecl *)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar *,GLvoid *)”转换为“GLDEBUGPROC” E:\study\project\trunk-2.6.2\trunk-2.6.2\libs\qCC_glWindow\ccGLWindow.cpp 605 1 QCC_GL_LIB
my software version is:VS2013+QT5.4+CMAKE3.4+trunk2.6.2
but there is no problem when I compile in release mode;
there is either noproblem when i compile trunk2.7 in the same condition.
how can i correct this problem!
compiling CloudCompare in debug mode
Re: compiling CloudCompare in debug mode
In fact CC only supports Qt 5.5+ now. But the differences are small, and mostly in debug mode.
You should either use Qt 5.5 or comment the part where QOpenGLDebugLogger is initialized in ccGLWindow (line 761).
You should either use Qt 5.5 or comment the part where QOpenGLDebugLogger is initialized in ccGLWindow (line 761).
Daniel, CloudCompare admin
-
- Posts: 15
- Joined: Thu Feb 25, 2016 11:47 am
Re: compiling CloudCompare in debug mode
line761 is “void ccGLWindow::resizeEvent(QResizeEvent *evt)”
on the one hand,you means I shoud makes some changes on ccGLWindow.cpp(line761)?
can you teach me how to change by detail?
i am a rookie in cc
on the other hand,you means i should change QT5.4 to qt5.5?right?
on the one hand,you means I shoud makes some changes on ccGLWindow.cpp(line761)?
can you teach me how to change by detail?
i am a rookie in cc
on the other hand,you means i should change QT5.4 to qt5.5?right?
-
- Posts: 15
- Joined: Thu Feb 25, 2016 11:47 am
Re: compiling CloudCompare in debug mode
another problem :dose QT5.5 contain opengl?
Re: compiling CloudCompare in debug mode
The simpler would probably be to upgrade Qt and use 5.5 version.
Daniel, CloudCompare admin
-
- Posts: 15
- Joined: Thu Feb 25, 2016 11:47 am
Re: compiling CloudCompare in debug mode
thanks for you help,I have substituted the debug initilizing code in trunk 2.6.2(ccGLWindow.cpp line 624):
glEnable(GL_DEBUG_OUTPUT);
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
//int value = 0;
//glGetIntegerv(GL_CONTEXT_FLAGS, &value);
//if ((value & GL_CONTEXT_FLAG_DEBUG_BIT) == 0)
//{
// ccLog::Warning("[3D View %i] But GL_CONTEXT_FLAG_DEBUG_BIT is not set!");
//}
glDebugMessageControl(GL_DONT_CARE,GL_DONT_CARE,GL_DONT_CARE,0,NULL,GL_TRUE);
//glDebugMessageControl(GL_DONT_CARE,GL_DEBUG_TYPE_OTHER,GL_DONT_CARE,0,NULL,GL_FALSE); //deactivate 'other' messages
glDebugMessageCallback(&GLDebugCallback, this);
by
trunk2.7 debug code(line761):
QOpenGLDebugLogger* logger = new QOpenGLDebugLogger(this);
logger->initialize();
connect(logger, SIGNAL(messageLogged(const QOpenGLDebugMessage&)), this, SLOT(handleLoggedMessage(const QOpenGLDebugMessage&)));
logger->enableMessages();
logger->disableMessages(QOpenGLDebugMessage::AnySource,
QOpenGLDebugMessage::DeprecatedBehaviorType
| QOpenGLDebugMessage::PortabilityType
| QOpenGLDebugMessage::PerformanceType
| QOpenGLDebugMessage::OtherType);
logger->startLogging(QOpenGLDebugLogger::SynchronousLogging);
/*glEnable(GL_DEBUG_OUTPUT);
and the problem maybe solved,because I has complile 2.6.2 in debug mode by qt successfully;
I will compile it in VS2013 in debug mode later.
thank you very much
glEnable(GL_DEBUG_OUTPUT);
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
//int value = 0;
//glGetIntegerv(GL_CONTEXT_FLAGS, &value);
//if ((value & GL_CONTEXT_FLAG_DEBUG_BIT) == 0)
//{
// ccLog::Warning("[3D View %i] But GL_CONTEXT_FLAG_DEBUG_BIT is not set!");
//}
glDebugMessageControl(GL_DONT_CARE,GL_DONT_CARE,GL_DONT_CARE,0,NULL,GL_TRUE);
//glDebugMessageControl(GL_DONT_CARE,GL_DEBUG_TYPE_OTHER,GL_DONT_CARE,0,NULL,GL_FALSE); //deactivate 'other' messages
glDebugMessageCallback(&GLDebugCallback, this);
by
trunk2.7 debug code(line761):
QOpenGLDebugLogger* logger = new QOpenGLDebugLogger(this);
logger->initialize();
connect(logger, SIGNAL(messageLogged(const QOpenGLDebugMessage&)), this, SLOT(handleLoggedMessage(const QOpenGLDebugMessage&)));
logger->enableMessages();
logger->disableMessages(QOpenGLDebugMessage::AnySource,
QOpenGLDebugMessage::DeprecatedBehaviorType
| QOpenGLDebugMessage::PortabilityType
| QOpenGLDebugMessage::PerformanceType
| QOpenGLDebugMessage::OtherType);
logger->startLogging(QOpenGLDebugLogger::SynchronousLogging);
/*glEnable(GL_DEBUG_OUTPUT);
and the problem maybe solved,because I has complile 2.6.2 in debug mode by qt successfully;
I will compile it in VS2013 in debug mode later.
thank you very much