0.9.6 on Linux

libolt

25-08-2007 23:12:38

Hi,

I decided to take a shot at building QuickGUI on linux. I've noticed there are no Makefiles or build system for it, so I decided to whip up my own CMake based system. However it got as far as compiling the first file, QuickGUIButton.cpp and barfed with the following:




/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPoint.h:10: error: expected initializer before ‘Point’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:30: error: expected initializer before ‘EventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:55: error: expected initializer before ‘WidgetEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:69: error: expected initializer before ‘MouseEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:89: error: expected initializer before ‘KeyEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:105: error: expected initializer before ‘ButtonStateEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:19: error: expected initializer before ‘MemberFunctionSlot’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:29: error: expected class-name before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:31: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:31: error: ISO C++ forbids declaration of ‘EventArgs’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:43: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:43: error: ISO C++ forbids declaration of ‘EventArgs’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h: In member function ‘virtual bool QuickGUI::MemberFunctionPointer<T>::execute(int)’:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:45: error: ‘args’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISize.h: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISize.h:10: error: expected initializer before ‘Size’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRect.h:12: error: expected initializer before ‘Rect’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIVertex.h:14: error: expected initializer before ‘Vertex’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRenderObject.h:19: error: expected initializer before ‘RenderObject’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIQuad.h:17: error: expected initializer before ‘Quad’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIVertexBuffer.h:21: error: expected initializer before ‘VertexBuffer’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRenderObjectGroup.h:23: error: expected initializer before ‘RenderObjectGroup’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWidget.h:63: error: expected initializer before ‘Widget’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIImage.h:14: error: expected initializer before ‘Image’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIText.h:24: error: expected initializer before ‘Text’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUILabel.h:16: error: expected initializer before ‘Label’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIButton.h:22: error: expected initializer before ‘Button’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISkinSet.h:21: error: expected initializer before ‘SkinSet’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMouseCursor.h:23: error: expected initializer before ‘MouseCursor’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUINStateButton.h:21: error: expected initializer before ‘NStateButton’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIListItem.h:16: error: expected initializer before ‘ListItem’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIList.h:20: error: expected initializer before ‘List’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIComboBox.h:26: error: expected initializer before ‘ComboBox’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMenuList.h:18: error: expected initializer before ‘MenuList’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMenu.h:21: error: expected initializer before ‘Menu’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIProgressBar.h:19: error: expected initializer before ‘ProgressBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITextBox.h:21: error: expected initializer before ‘TextBox’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITrackBar.h:17: error: expected initializer before ‘TrackBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPanel.h:31: error: expected initializer before ‘Panel’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITitleBar.h:28: error: expected initializer before ‘TitleBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWindow.h:25: error: expected initializer before ‘Window’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISheet.h:17: error: expected initializer before ‘Sheet’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIManager.h:41: error: expected initializer before ‘GUIManager’
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ‘Button’ has not been declared
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ISO C++ forbids declaration of ‘Button’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ISO C++ forbids declaration of ‘Rect’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘int QuickGUI::Button(const Ogre::String&, int)’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: only constructors take base initializers
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘dimensions’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘positionMode’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘sizeMode’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘texture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘group’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘ParentWidget’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:11: error: ‘mWidgetType’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:11: error: incomplete type ‘QuickGUI::Widget’ used in nested name specifier
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:12: error: ‘mRenderObject’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:12: error: ‘RenderObject’ has not been declared
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:15: error: expected constructor, destructor, or type conversion before ‘::’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:19: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘void QuickGUI::applyButtonDownTexture()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:22: error: ‘mDefaultTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:22: error: ‘mTextureExtension’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:23: error: ‘mGUIManager’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:24: error: ‘setTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:27: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘void QuickGUI::applyDefaultTexture()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘mDefaultTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘mTextureExtension’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘setTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:33: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:43: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:55: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:72: error: expected ‘,’ or ‘;’ before ‘{’ token
make[2]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o] Error 1
make[1]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/all] Error 2
make: *** [all] Error 2




Hopefully someone can give me a tip on how to fix this. I would love to try QuickGUI out and possibly integrate it into my project.

Thanks,

Mike

kungfoomasta

26-08-2007 01:39:46

Hi libolt,

I haven't used Linux in a while..

I have created a sticky thread requesting any help from other users, I believe there are users on the Linux platform.

Game_Ender

26-08-2007 02:53:18

You need to give way more output then that. Since you are using a make based CMake build please build with "make VERBOSE=1" and post the full output. This way we can see if you have set the include paths properly. That is the first step, especially when you appear to either missing a header or having a namespace issue.

libolt

26-08-2007 03:05:21

I'll attach the full output of make VERBOSE=1 below. However I did use CMake's builtin pkg-config support to get the proper include and library paths for Ogre, I took the code out of the CMakeLists.txt from my own project where I have tested it :)

Anyways here it is, if there's anything more you need from me, let me know. Anything I can do to help improve the project :)


/usr/bin/cmake -E cmake_progress_report /home/libolt/Projects/quickgui/CMakeFiles 1
[ 3%] Building CXX object QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o
/usr/bin/c++ -I/home/libolt/Projects/quickgui/QuickGUI/src/../include -I/home/libolt/Projects/quickgui/QuickGUI/src/-DOGRE_GUI_GLX -I/home/libolt/Projects/quickgui/QuickGUI/src/-DOGRE_CONFIG_LITTLE_ENDIAN -I/usr/include/OGRE -o QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o -c /home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPoint.h:10: error: expected initializer before ‘Point’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:30: error: expected initializer before ‘EventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:55: error: expected initializer before ‘WidgetEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:69: error: expected initializer before ‘MouseEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:89: error: expected initializer before ‘KeyEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:105: error: expected initializer before ‘ButtonStateEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:19: error: expected initializer before ‘MemberFunctionSlot’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:29: error: expected class-name before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:31: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:31: error: ISO C++ forbids declaration of ‘EventArgs’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:43: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:43: error: ISO C++ forbids declaration of ‘EventArgs’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h: In member function ‘virtual bool QuickGUI::MemberFunctionPointer<T>::execute(int)’:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:45: error: ‘args’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISize.h: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISize.h:10: error: expected initializer before ‘Size’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRect.h:12: error: expected initializer before ‘Rect’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIVertex.h:14: error: expected initializer before ‘Vertex’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRenderObject.h:19: error: expected initializer before ‘RenderObject’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIQuad.h:17: error: expected initializer before ‘Quad’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIVertexBuffer.h:21: error: expected initializer before ‘VertexBuffer’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRenderObjectGroup.h:23: error: expected initializer before ‘RenderObjectGroup’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWidget.h:63: error: expected initializer before ‘Widget’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIImage.h:14: error: expected initializer before ‘Image’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIText.h:24: error: expected initializer before ‘Text’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUILabel.h:16: error: expected initializer before ‘Label’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIButton.h:22: error: expected initializer before ‘Button’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISkinSet.h:21: error: expected initializer before ‘SkinSet’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMouseCursor.h:23: error: expected initializer before ‘MouseCursor’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUINStateButton.h:21: error: expected initializer before ‘NStateButton’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIListItem.h:16: error: expected initializer before ‘ListItem’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIList.h:20: error: expected initializer before ‘List’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIComboBox.h:26: error: expected initializer before ‘ComboBox’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMenuList.h:18: error: expected initializer before ‘MenuList’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMenu.h:21: error: expected initializer before ‘Menu’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIProgressBar.h:19: error: expected initializer before ‘ProgressBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITextBox.h:21: error: expected initializer before ‘TextBox’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITrackBar.h:17: error: expected initializer before ‘TrackBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPanel.h:31: error: expected initializer before ‘Panel’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITitleBar.h:28: error: expected initializer before ‘TitleBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWindow.h:25: error: expected initializer before ‘Window’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISheet.h:17: error: expected initializer before ‘Sheet’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIManager.h:41: error: expected initializer before ‘GUIManager’
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ‘Button’ has not been declared
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ISO C++ forbids declaration of ‘Button’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ISO C++ forbids declaration of ‘Rect’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘int QuickGUI::Button(const Ogre::String&, int)’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: only constructors take base initializers
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘dimensions’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘positionMode’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘sizeMode’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘texture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘group’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘ParentWidget’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:11: error: ‘mWidgetType’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:11: error: incomplete type ‘QuickGUI::Widget’ used in nested name specifier
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:12: error: ‘mRenderObject’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:12: error: ‘RenderObject’ has not been declared
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:15: error: expected constructor, destructor, or type conversion before ‘::’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:19: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘void QuickGUI::applyButtonDownTexture()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:22: error: ‘mDefaultTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:22: error: ‘mTextureExtension’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:23: error: ‘mGUIManager’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:24: error: ‘setTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:27: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘void QuickGUI::applyDefaultTexture()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘mDefaultTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘mTextureExtension’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘setTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:33: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:43: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:55: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:72: error: expected ‘,’ or ‘;’ before ‘{’ token
make[2]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o] Error 1
make[2]: Leaving directory `/home/libolt/Projects/quickgui'
make[1]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/all] Error 2
make[1]: Leaving directory `/home/libolt/Projects/quickgui'
make: *** [all] Error 2


Thanks again for all the help.

Mike

Game_Ender

26-08-2007 03:39:24

You have not defined "_QuickGUIExport". To start with I would add this line to your CMakeLists.txt
ADD_DEFINITIONS(-D_QuickGUIExport)

That should make the errors go away. With recent versions of g++ you can tweak symbol visibility and use special attributes to only make the classes you want visible. This will reduce binary size. I would only do this after you have got everything else working.

libolt

26-08-2007 20:17:17

Game_Ender:

Thanks for the suggestion. However defining _QuickGUIExport only seems to add a few warnings to the errors from before as can be seen below.


/usr/bin/cmake -E cmake_progress_report /home/libolt/Projects/quickgui/CMakeFiles 1
[ 3%] Building CXX object QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o
/usr/bin/c++ -I/home/libolt/Projects/quickgui/QuickGUI/src/../include -I/home/libolt/Projects/quickgui/QuickGUI/src/-DOGRE_GUI_GLX -I/home/libolt/Projects/quickgui/QuickGUI/src/-DOGRE_CONFIG_LITTLE_ENDIAN -I/usr/include/OGRE -D_QuickGUIExport -o QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o -c /home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp
In file included from /home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPoint.h:6,
from /home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:21,
from /home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWidget.h:7,
from /home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIImage.h:4,
from /home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUILabel.h:4,
from /home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIButton.h:4,
from /home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:1:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIExportDLL.h:7:1: warning: "_QuickGUIExport" redefined
<command line>:1:1: warning: this is the location of the previous definition
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPoint.h:10: error: expected initializer before ‘Point’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:30: error: expected initializer before ‘EventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:55: error: expected initializer before ‘WidgetEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:69: error: expected initializer before ‘MouseEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:89: error: expected initializer before ‘KeyEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIEventArgs.h:105: error: expected initializer before ‘ButtonStateEventArgs’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:19: error: expected initializer before ‘MemberFunctionSlot’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:29: error: expected class-name before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:31: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:31: error: ISO C++ forbids declaration of ‘EventArgs’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:43: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:43: error: ISO C++ forbids declaration of ‘EventArgs’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h: In member function ‘virtual bool QuickGUI::MemberFunctionPointer<T>::execute(int)’:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMemberFunctionPointer.h:45: error: ‘args’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISize.h: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISize.h:10: error: expected initializer before ‘Size’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRect.h:12: error: expected initializer before ‘Rect’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIVertex.h:14: error: expected initializer before ‘Vertex’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRenderObject.h:19: error: expected initializer before ‘RenderObject’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIQuad.h:17: error: expected initializer before ‘Quad’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIVertexBuffer.h:21: error: expected initializer before ‘VertexBuffer’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIRenderObjectGroup.h:23: error: expected initializer before ‘RenderObjectGroup’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWidget.h:63: error: expected initializer before ‘Widget’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIImage.h:14: error: expected initializer before ‘Image’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIText.h:24: error: expected initializer before ‘Text’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUILabel.h:16: error: expected initializer before ‘Label’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIButton.h:22: error: expected initializer before ‘Button’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISkinSet.h:21: error: expected initializer before ‘SkinSet’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMouseCursor.h:23: error: expected initializer before ‘MouseCursor’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUINStateButton.h:21: error: expected initializer before ‘NStateButton’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIListItem.h:16: error: expected initializer before ‘ListItem’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIList.h:20: error: expected initializer before ‘List’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIComboBox.h:26: error: expected initializer before ‘ComboBox’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMenuList.h:18: error: expected initializer before ‘MenuList’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIMenu.h:21: error: expected initializer before ‘Menu’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIProgressBar.h:19: error: expected initializer before ‘ProgressBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITextBox.h:21: error: expected initializer before ‘TextBox’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITrackBar.h:17: error: expected initializer before ‘TrackBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIPanel.h:31: error: expected initializer before ‘Panel’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUITitleBar.h:28: error: expected initializer before ‘TitleBar’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWindow.h:25: error: expected initializer before ‘Window’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUISheet.h:17: error: expected initializer before ‘Sheet’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIManager.h:41: error: expected initializer before ‘GUIManager’
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ‘Button’ has not been declared
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: expected ‘,’ or ‘...’ before ‘&’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ISO C++ forbids declaration of ‘Button’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: ISO C++ forbids declaration of ‘Rect’ with no type
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘int QuickGUI::Button(const Ogre::String&, int)’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:8: error: only constructors take base initializers
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘dimensions’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘positionMode’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘sizeMode’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘texture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘group’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:9: error: ‘ParentWidget’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:11: error: ‘mWidgetType’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:11: error: incomplete type ‘QuickGUI::Widget’ used in nested name specifier
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:12: error: ‘mRenderObject’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:12: error: ‘RenderObject’ has not been declared
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:15: error: expected constructor, destructor, or type conversion before ‘::’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:19: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘void QuickGUI::applyButtonDownTexture()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:22: error: ‘mDefaultTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:22: error: ‘mTextureExtension’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:23: error: ‘mGUIManager’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:24: error: ‘setTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:27: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: In function ‘void QuickGUI::applyDefaultTexture()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘mDefaultTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘mTextureExtension’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:29: error: ‘setTexture’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp: At global scope:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:32: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:33: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:42: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:43: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:54: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:55: error: expected ‘,’ or ‘;’ before ‘{’ token
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘Button’ is not a class or namespace
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘MouseEventArgs’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:71: error: ‘e’ was not declared in this scope
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUIButton.cpp:72: error: expected ‘,’ or ‘;’ before ‘{’ token
make[2]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUIButton.o] Error 1
make[2]: Leaving directory `/home/libolt/Projects/quickgui'
make[1]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/all] Error 2
make[1]: Leaving directory `/home/libolt/Projects/quickgui'
make: *** [all] Error 2



Thanks again for the help.

Mike

libolt

29-08-2007 01:53:45

Okay, today I have made some progress on getting QuickGUI to compile.

I wrapped the "class _QuickGUIExport <classnamehere>" lines in:

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32

Then in the #else statement I removed the _QuickGUIExport part so for example the following:


#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
class _QuickGUIExport Button :
public Label
#else
class Button :
public Label
#endif


Now this got everything to compile until I hit the QuickGUITextCursor.cpp file.

I'm getting the following errors:


/usr/bin/cmake -E cmake_progress_report /home/libolt/Projects/quickgui/CMakeFiles 26
[ 3%] Building CXX object QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUITextCursor.o
/usr/bin/c++ -I/home/libolt/Projects/quickgui/QuickGUI/src/../include -I/home/libolt/Projects/quickgui/QuickGUI/src/-DOGRE_GUI_GLX -I/home/libolt/Projects/quickgui/QuickGUI/src/-DOGRE_CONFIG_LITTLE_ENDIAN -I/usr/include/OGRE -o QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUITextCursor.o -c /home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp: In constructor ‘QuickGUI::TextCursor::TextCursor(const Ogre::String&, const Ogre::Vector4&, QuickGUI::GuiMetricsMode, QuickGUI::GuiMetricsMode, const Ogre::String&, QuickGUI::RenderObjectGroup*, QuickGUI::Widget*)’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp:7: error: no matching function for call to ‘QuickGUI::Widget::Widget(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const Ogre::Vector4&, QuickGUI::GuiMetricsMode&, QuickGUI::GuiMetricsMode&, const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, QuickGUI::RenderObjectGroup*&, QuickGUI::Widget*&)’
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWidget.h:140: note: candidates are: QuickGUI::Widget::Widget(const Ogre::String&, const QuickGUI::Rect&, QuickGUI::GuiMetricsMode, QuickGUI::GuiMetricsMode, Ogre::String, QuickGUI::RenderObjectGroup*, QuickGUI::Widget*)
/home/libolt/Projects/quickgui/QuickGUI/src/../include/QuickGUIWidget.h:68: note: QuickGUI::Widget::Widget(const QuickGUI::Widget&)
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp:9: error: ‘TYPE_TEXTCURSOR’ is not a member of ‘QuickGUI::Widget’
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp:13: error: ‘class QuickGUI::Rect’ has no member named ‘z’
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp: In member function ‘virtual void QuickGUI::TextCursor::_applyDimensions()’:
/home/libolt/Projects/quickgui/QuickGUI/src/QuickGUITextCursor.cpp:28: error: ‘class QuickGUI::Rect’ has no member named ‘z’
make[2]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/QuickGUITextCursor.o] Error 1
make[2]: Leaving directory `/home/libolt/Projects/quickgui'
make[1]: *** [QuickGUI/src/CMakeFiles/quickgui.dir/all] Error 2
make[1]: Leaving directory `/home/libolt/Projects/quickgui'
make: *** [all] Error 2


If anyone has suggestions please let me know. I'd love to get this working so that QuickGUI is usable on multiple platforms.

Mike

thecaptain

29-08-2007 02:21:31

Are you using code assuming the API for the old version of QuickGUI? It looks like you're still trying to create widgets using Vector4's, when now it has to be QuickGUI::Rect's. Also, you are asking for something.z, when now in QuickGUI::Rect's it has .width and .height.

Most of those errors there could easily be fixed by updating the code you are using to create the widgets to conform to the latest API.

libolt

29-08-2007 02:29:30

thecaptain:

I am just trying to get QuickGUI itself to build on linux. I'm not yet at the point where I'm going to dig in and learn how to use it for my own project.

I'll try a checkout of the code from Subversion.

thecaptain

29-08-2007 03:02:41

Oh ok, no worries :)

If you do a fresh checkout of the code on SVN I think most of those problems should go away.

libolt

29-08-2007 06:56:39

I now have successfully built QuickGUI under linux and even gotten the Demo to run! :)

Here's what I did to get everything going:

- Checked out a fresh copy of QuickGUI from the Subversion link in the sticky at the top of this forum.

- Started with a CMake build system that I whipped up.

- Went through and put #ifdefs around classes that used _QuickGUIExport as stated in an earlier post.

- Removed QuickGUITextCursor.cpp from my CMakeLists.txt and that allowed the library to build properly.

- Copied ExampleApplication.h and ExampleFrameListener.h to the QuickGUIDemo/include directory from my own ogrenew directory.

- Built the demo, linking it against my libquickgui.a static library.

- Copied the QuickGUIDemo binary to the bin directory from QuickGUIDemo/src

- Copied the plugins.cfg out of my ogrenew/Samples/Common/bin directory to the quickgui bin/ directory so that the demo would find my copy of ogre and related plugins.

- Edited bin/media/fonts/acmesa.fontdef changing all occurances of acmesa.ttf with ACMESA.TTF to conform with file name case sensitivity under linux.

The only part I don't have working currently is the QuickGUIEditor, which looks like it may be tied to the win32 api. I haven't looked at it closely though.

My Todos are:

- Make libquickgui a shared library, which should be a matter of CMake configuration.

- Make QuickGUI install into the proper locations in a linux/unix environment. Right now it has no install target.

- Set it up so that building on linux finds the appropriate location of the OGRE plugins and modifies the plugins.cfg in bin/ appropriately.

- Build QuickGUI under windows using the CMake build system (mostly so I can use it with my OGRE/mingw setup).


Below I am including links to a tarball of my work, so that other linux/unix users can try it out and a zipfile.

http://knightlabs.com/ubc/quickgui-linux.tar.bz2

http://knightlabs.com/ubc/quickgui.zip

kungfoomasta:

If you get some free time I would appreciate it if you check out my changes to see if they are acceptable. I haven't had a chance to try it out on a Windows system myself and probably won't until sometime late next week. I am willing to maintain this CMake build system and work at keeping QuickGUI building/running on linux.

If anyone finds problems with the way I've done things please let me know. I just want to help QuickGUI run on more platforms.

Thanks for everyone's help along the way to getting this working on linux. :) I'm going to try and rip CEGUI out of my own project now and insert QuickGUI instead.

Mike

kungfoomasta

29-08-2007 07:13:54

Awesome, glad you got it working! I didn't realize the TextCursor class was still in SVN, I have removed it now.

Tomorrow after work I'll look at your changes and see if they allow for building on windows platform. The Editor is not even close to complete, its just the base interface I want to use, and unfortunately is it tied to windows, it uses MSVC++.

Hope you like QuickGUI! It has a ways to go in terms of its widget set, but I put a lot of time into making it easy to skin and use. Suggestions are welcome. :)

libolt

29-08-2007 07:33:18

Alright, let me know if there are changes you need me to make. I will work on making the build system more functional and also trying QuickGUI out. However, I'll be on vacation, out of town for a week starting Thursday so I may not get much done for a while.

Thanks again and I look forward to QuickGUI continuing to improve. :)

Mike

libolt

30-08-2007 03:14:53

Okay, I have done some more work on the CMake build system.

It now does the following:

- Creates a shared library (currently libQuickGUI-0.9.6.so) based of a QUICKGUI_VERSION variable that I have set in the top level CMakeLists.txt

- Installs the shared library in $QUICKGUI_PREFIX/lib (QUICKGUI_PREFIX is also set in the top level CMakeLists.txt)

- Installs the header files in $QUICKGUI_PREFIX/include/QuickGUI (I put them in the QuickGUI directory to separate them off from other header files in a similar fashion to OGRE etc)

- Creates a QuickGUI.pc for pkg-config so that it can be easily determined where everything is at.

- Installs the generated QuickGUI.pc in $QUICKGUI_PREFIX/pkgconfig

- Installs the QuickGUIDemo binary in the bin/ directory of the quickgui tree.

Also, make uninstall is functional and will remove all installed files but does not delete any created directories (Such as: $QUICKGUI_PREFIX/include/QuickGUI)

I still need to figure out how to make CMake generate a shared library with a more proper naming convention such as libQuickGUI.so.0.9.6 (with appropriate symbolic links) to match standard naming conventions. But for now I'm happy with it.

I encourage people wanting to use QuickGUI on linux to try this out and let me know their results. I have tested this setup on Ubuntu (amd64 and x86) and Debian amd64. So I would appreciate it if people with other distributions would see if everything builds and works correctly.

Below I'm attaching links to a linux tar ball and a zip file. The contents of both files should be identical.

http://www.knightlabs.com/ubc/quickgui-linux-08-29-2007.tar.bz2

http://www.knightlabs.com/ubc/quickgui-08-29-2007.zip

kungfoomasta

30-08-2007 03:27:59

Thanks for your work, I will link to this thread in the linux sticky thread I have created. :)

So the only major code change in the library is the addition of #ifdefs? I've been making various changes to the code base all the time, so if this is there are little changes I will just add them into my code base and commit them.

libolt

30-08-2007 03:52:14

No problem, I'm glad I can help the project out. :)

As far as changes. Yes it is only the #ifdefs as far as I can remember. I dont' think I touched any of the other code.

Mike

Game_Ender

30-08-2007 05:03:57

I checked out the CMake files and I have some comments:
* Remove repetitive PKG_CONFIG macro based code by wrapping it in your own macro (MACRO and ENDMACRO commands)
* Add actual win32 support by wrapping the parts that set compiler and linker flags for OIS and Ogre with the "IF(WIN32)" statements, not the whole CMakeLists.txt file. (You have already mentioned this, and this is the way you go about doing that)
* Since Ogre is used in all subdirectories only include it once, in the root CMakeLists.txt file

Here is how you make a shared library:ADD_LIBRARY(mylib SHARED ${src})

These are just style issues:
* Remove the extra spaces from a few of the files
* Remove the CMakeLists.txt from the source directory and place them one directory higher
* Place each source file on a seperate line, makes editing the list easier

There is of course a proper way to fix this "_QuickGUIExport" define. You don't wrap the use of each macro, that completely defeats its purpose, which is to help portability and maintainability. All you have to do is change "QuickGUIExportDLL.h" to this:
#ifndef QUICKGUIEXPORTDLL_H
#define QUICKGUIEXPORTDLL_H

#ifdef QUICKGUI_EXPORTS
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define _QuickGUIExport __declspec(dllexport)
#else
#define _QuickGUIExport __declspec(dllimport)
#else
#define _QuickGUIExport
#endif // QUICKGUI_EXPORTS
#endif // OGRE_PLATFORM_WIN32

#endif

libolt

30-08-2007 05:30:05

Game_Ender:

Thanks for taking the time to look at it and provide feedback. I appreciate all the comments and suggestions.

I've already got the shared lib working, I just want to make it so that it installs in a more conventional fashion with a libQuickGUI.so.0.9.6 instead of my current libQuickGUI-0.9.6.so and such.

I will work on improving the quality of the CMakeLists.txt files once I get back from vacation. Your tips certainly will be a great help as I am still feeling my way along with CMake.

Windows support will be added when I get back as well. I want to make it compile under both MSVC++ and Mingw through the cmake build system

Your solution for the _QuickGUIExport define definitely looks a lot cleaner. I wish I had more time tonight to work on things, but unfortunately I have to get up early in the morning and catch a flight to Kansas.

Thanks again for your help and I will work on rolling in the suggested fixes once I get back in town.

Mike

kungfoomasta

30-08-2007 05:43:54

So I just need to apply that fix Game_Ender suggests?

I copied the OgreOpcode header, so it looks like:


#ifndef QUICKGUIEXPORTDLL_H
#define QUICKGUIEXPORTDLL_H

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 && !defined ( __MINGW32__ )
# if defined( QUICKGUI_EXPORTS )
# define _QuickGUIExport __declspec( dllexport )
# else
# define _QuickGUIExport __declspec( dllimport )
# endif
#else
# define _QuickGUIExport
#endif

#endif


Thanks for the help all, I should have copied/pasted this in from the start. :oops:

libolt

30-08-2007 06:06:06

Yes, I just decided to give Game_Ender's solution a try before I head off to bed. It is as he said a much better and much simpler fix than my ugly brute force method. I successfully built the latest SVN from a couple of minutes ago (with my hacks removed) and it builds and works properly on linux.

It should be perfectly safe to apply. I will work on improving the cmake build system next week.

For now though, thanks again for all the help. I look forward to integrating QuickGUI into my game once I'm happy with the build system.

Mike