Qt issues on mac osx 9
-
I get the following when trying to build a project on mac in qtcreator:
@
In file included from src/main.cpp:4:
In file included from /Users/d/Qt/5.3/clang_64/lib/QtGui.framework/Headers/QGuiApplication:1:
In file included from /Users/d/Qt/5.3/clang_64/lib/QtGui.framework/Versions/5/Headers/qguiapplication.h:47:
/Users/d/Qt/5.3/clang_64/lib/QtGui.framework/Headers/qinputmethod.h:90:5: error: unknown type name 'QLocale'
QLocale locale() const;
^
@This is my main.cpp:
@
/****************************************************************************
basic OpenGL demo modified from http://qt-project.org/doc/qt-5.0/qtgui/openglwindow.html
****************************************************************************/
#include <QtGui/QGuiApplication>
#include <iostream>
#include "NGLScene.h"int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
// create an OpenGL format specifier
QSurfaceFormat format;
// set the number of samples for multisampling
// will need to enable glEnable(GL_MULTISAMPLE); once we have a context
format.setSamples(4);
#if defined( DARWIN)
// at present mac osx Mountain Lion only supports GL3.2
// the new mavericks will have GL 4.x so can change
format.setMajorVersion(3);
format.setMinorVersion(2);
#else
// with luck we have the latest GL version so set to this
format.setMajorVersion(4);
format.setMinorVersion(5);
#endif
// now we are going to set to CoreProfile OpenGL so we can't use and old Immediate mode GL
format.setProfile(QSurfaceFormat::CoreProfile);
// now set the depth buffer to 24 bits
format.setDepthBufferSize(24);
// now we are going to create our scene window
NGLScene window;
// and set the OpenGL format
window.setFormat(format);
// we can now query the version to see if it worked
std::cout<<"Profile is "<<format.majorVersion()<<" "<<format.minorVersion()<<"\n";
// set the window size
window.resize(1024, 720);
// and finally show
window.show();return app.exec();
}
@Weird thing is the line 4 from main.cpp is just "#include < QtGui/QGuiApplication >" so everything else is just coming from Qt??
Qt Creator was installed using the qtcreator mac package. And Qt was installed from source using the instructions here: http://qt-project.org/doc/qt-5/macosx-building.html
Thanks for the syntax example... her is the .pro file:
@
This specifies the exe name
TARGET=SimpleNGL
where to put the .o files
OBJECTS_DIR=obj
core Qt Libs to use add more here if needed.
QT+=gui opengl core
as I want to support 4.8 and 5 this will set a flag for some of the mac stuff
mainly in the types.h file for the setMacVisual which is native in Qt5
isEqual(QT_MAJOR_VERSION, 5) {
cache()
DEFINES +=QT5BUILD
}
QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9where to put moc auto generated files
MOC_DIR=moc
on a mac we don't create a .app bundle file ( for ease of multiplatform use)
CONFIG-=app_bundle
Auto include all .cpp files in the project src directory (can specifiy individually if required)
SOURCES+= $$PWD/src/*.cpp
same for the .h files
HEADERS+= $$PWD/include/*.h
and add the include dir into the search path for Qt and make
INCLUDEPATH +=./include
INCLUDEPATH += /opt/local/includewhere our exe is going to live (root of project)
DESTDIR=./
add the glsl shader files
OTHER_FILES+= shaders/*.glsl
README.mdwere are going to default to a console app
CONFIG += console
note each command you add needs a ; as it will be run as a single line
first check if we are shadow building or not easiest way is to check out against current
!equals(PWD, $${OUT_PWD}){
copydata.commands = echo "creating destination dirs" ;now make a dir
copydata.commands += mkdir -p $$OUT_PWD/shaders ;
copydata.commands += echo "copying files" ;then copy the files
copydata.commands += $(COPY_DIR) $$PWD/shaders/* $$OUT_PWD/shaders/ ;
now make sure the first target is built before copy
first.depends = $(first) copydata
export(first.depends)
export(copydata.commands)now add it as an extra target
QMAKE_EXTRA_TARGETS += first copydata
}use this to suppress some warning from boost
QMAKE_CXXFLAGS_WARN_ON += "-Wno-unused-parameter"
basic compiler flags (not all appropriate for all platforms)
QMAKE_CXXFLAGS+= -msse -msse2 -msse3
macx:QMAKE_CXXFLAGS+= -arch x86_64
macx:INCLUDEPATH+=/usr/local/include/
linux-g++:QMAKE_CXXFLAGS += -march=native
linux-g++-64:QMAKE_CXXFLAGS += -march=nativedefine the _DEBUG flag for the graphics lib
DEFINES +=NGL_DEBUG
unix:LIBS += -L/usr/local/lib
add the ngl lib
unix:LIBS += -L/$(HOME)/NGL/lib -l NGL
now if we are under unix and not on a Mac (i.e. linux)
linux-{
linux-:QMAKE_CXXFLAGS += -march=native
DEFINES += LINUX
}
DEPENDPATH+=includeif we are on a mac define DARWIN
macx:DEFINES += DARWIN
macx:LIBS += -L/opt/local/LIBS
macx:LIBS += -lboost_system-mt -lboost_filesystem-mtthis is where to look for includes
INCLUDEPATH += $$(HOME)/NGL/include/
win32: {
PRE_TARGETDEPS+=C:/NGL/lib/NGL.lib
INCLUDEPATH+=-I c:/boost
DEFINES+=GL42
DEFINES += WIN32
DEFINES+=_WIN32
DEFINES+=_USE_MATH_DEFINES
LIBS += -LC:/NGL/lib/ -lNGL
DEFINES+=NO_DLL
}@
[edit: added missing coding tags @ SGaist]
-
Hi and welcome to devnet,
Are you using a pro file to manage your project ? If so can you post it ?
-
I've edited the original to include the .pro.... actually the project and the associated library can be downloaded here:
http://nccastaff.bournemouth.ac.uk/jmacey/GraphicsLib/index.html
http://nccastaff.bournemouth.ac.uk/jmacey/GraphicsLib/Demos/index.html
-
Are you saying that it happens when your build that library ? Or just when trying to use ?
-
here is the compilation output:
@
In file included from include/NGLScene.h:7:
In file included from /Users/d/NGL/include/ngl/Text.h:45:
In file included from /Users/d/Qt/5.3/clang_64/lib/QtGui.framework/Versions/5/Headers/QFont:1:
/Users/d/Qt/5.3/clang_64/lib/QtGui.framework/Versions/5/Headers/qfont.h:320:59: error: expected function body after function declarator
Q_GUI_EXPORT uint qHash(const QFont &font, uint seed = 0) Q_DECL_NOTHROW;
^
1 warning and 15 errors generated.
make: *** [obj/main.o] Error 1
19:47:36: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project SimpleNGL (kit: Desktop Qt 5.3 clang 64bit)
When executing step "Make"
19:47:36: Elapsed time: 00:02.
@