A bug in the latest tip


#1

When i try to do a Release build of the Introjucer, Windows VS2010 SP1

1>------ Build started: Project: The Introjucer, Configuration: Release Win32 ------
1>Build started 5/22/2012 8:41:27 PM.
1>InitializeBuildStatus:
1>  Touching ".\Release\The Introjucer.unsuccessfulbuild".
1>ClCompile:
1>  juce_gui_extra.cpp
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(36): error C2065: 'NSString' : undeclared identifier
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(36): error C2065: 's' : undeclared identifier
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(37): error C2448: 'nsStringToJuce' : function-style initializer appears to be a function definition
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(41): error C2143: syntax error : missing ';' before '*'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(41): error C2433: 'NSString' : 'inline' not permitted on data declarations
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(41): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(42): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(43): error C3480: 'juce::`anonymous-namespace'::NSString': a lambda capture variable must be from an enclosing function scope
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(43): error C2146: syntax error : missing ']' before identifier 'stringWithUTF8String'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(43): error C2059: syntax error : ']'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(43): error C2061: syntax error : identifier 'stringWithUTF8String'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(46): error C2143: syntax error : missing ';' before '*'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(46): error C2433: 'NSString' : 'inline' not permitted on data declarations
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(46): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(46): error C2086: 'int juce::`anonymous-namespace'::NSString' : redefinition
1>          c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(41) : see declaration of 'juce::`anonymous-namespace'::NSString'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(47): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(48): error C3480: 'juce::`anonymous-namespace'::NSString': a lambda capture variable must be from an enclosing function scope
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(48): error C2146: syntax error : missing ']' before identifier 'stringWithUTF8String'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(48): error C2059: syntax error : ']'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(48): error C2061: syntax error : identifier 'stringWithUTF8String'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(51): error C2143: syntax error : missing ';' before '*'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(51): error C2433: 'NSString' : 'inline' not permitted on data declarations
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(51): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(51): error C2086: 'int juce::`anonymous-namespace'::NSString' : redefinition
1>          c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(41) : see declaration of 'juce::`anonymous-namespace'::NSString'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(52): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(53): error C3480: 'juce::`anonymous-namespace'::NSString': a lambda capture variable must be from an enclosing function scope
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(53): error C2146: syntax error : missing ']' before identifier 'string'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(53): error C2059: syntax error : ']'
1>c:\devel\juce\modules\juce_gui_extra\../juce_core/native/juce_osx_ObjCHelpers.h(53): error C2061: syntax error : identifier 'string'
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(45): warning C4573: the usage of 'juce::FileBasedDocument::changedSinceSave' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(47): warning C4573: the usage of 'juce::FileBasedDocument::changedSinceSave' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(48): warning C4573: the usage of 'juce::ChangeBroadcaster::sendChangeMessage' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(54): warning C4573: the usage of 'juce::FileBasedDocument::changedSinceSave' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(55): warning C4573: the usage of 'juce::ChangeBroadcaster::sendChangeMessage' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(61): warning C4573: the usage of 'juce::FileBasedDocument::documentFile' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(63): warning C4573: the usage of 'juce::FileBasedDocument::documentFile' requires the compiler to capture 'this' but the current default capture mode does not allow it
1>c:\devel\juce\modules\juce_gui_extra\documents/juce_FileBasedDocument.cpp(64): warning C4573: the usage of 'juce::FileBasedDocument::changed' requires the compiler to capture 'this' but the current default capture mode does not allow it

#2

Ah bugger. Sorry, I hadn’t tested on windows today. All sorted now.


#3

I still get a compile error in Visual Studio 2010 for Windows with latest version.

1>------ Build started: Project: Jucer, Configuration: Release Win32 ------ 1>Build started 25/05/2012 3:59:25 AM. 1>InitializeBuildStatus: 1> Touching ".\Release\Jucer.unsuccessfulbuild". 1>ClCompile: 1> jucer_ObjectTypes.cpp 1> jucer_ComponentLayoutEditor.cpp 1> jucer_JucerDocumentHolder.cpp 1> jucer_MainWindow.cpp 1> jucer_Main.cpp 1>d:\source\juce\extras\the jucer\src\ui/jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuBarNames': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuBarNames' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(114) : see declaration of 'juce::MenuBarModel::getMenuBarNames' 1>d:\source\juce\extras\the jucer\src\ui/jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuForIndex': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuForIndex' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(121) : see declaration of 'juce::MenuBarModel::getMenuForIndex' 1>d:\source\juce\extras\the jucer\src\model\components\../../ui/jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuBarNames': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuBarNames' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(114) : see declaration of 'juce::MenuBarModel::getMenuBarNames' 1>d:\source\juce\extras\the jucer\src\model\components\../../ui/jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuForIndex': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuForIndex' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(121) : see declaration of 'juce::MenuBarModel::getMenuForIndex' 1>d:\source\juce\extras\the jucer\src\ui\jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuBarNames': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuBarNames' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(114) : see declaration of 'juce::MenuBarModel::getMenuBarNames' 1>d:\source\juce\extras\the jucer\src\ui\jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuForIndex': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuForIndex' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(121) : see declaration of 'juce::MenuBarModel::getMenuForIndex' 1>d:\source\juce\extras\the jucer\src\ui\jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuBarNames': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuBarNames' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(114) : see declaration of 'juce::MenuBarModel::getMenuBarNames' 1>d:\source\juce\extras\the jucer\src\ui\jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuForIndex': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuForIndex' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(121) : see declaration of 'juce::MenuBarModel::getMenuForIndex' 1>..\..\src\ui\jucer_MainWindow.cpp(227): error C2373: 'MainWindow::getMenuBarNames' : redefinition; different type modifiers 1> d:\source\juce\extras\the jucer\src\ui\jucer_MainWindow.h(63) : see declaration of 'MainWindow::getMenuBarNames' 1>..\..\src\ui\jucer_MainWindow.cpp(235): error C2373: 'MainWindow::getMenuForIndex' : redefinition; different type modifiers 1> d:\source\juce\extras\the jucer\src\ui\jucer_MainWindow.h(64) : see declaration of 'MainWindow::getMenuForIndex' 1>d:\source\juce\extras\the jucer\src\model\components\../../ui/jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuBarNames': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuBarNames' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(114) : see declaration of 'juce::MenuBarModel::getMenuBarNames' 1>d:\source\juce\extras\the jucer\src\model\components\../../ui/jucer_MainWindow.h(78): error C2555: 'MainWindow::getMenuForIndex': overriding virtual function return type differs and is not covariant from 'juce::MenuBarModel::getMenuForIndex' 1> d:\source\juce\modules\juce_gui_basics\menus\juce_MenuBarModel.h(121) : see declaration of 'juce::MenuBarModel::getMenuForIndex' 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:01.82 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


#4

Different problem, but yes, thanks! Should be ok now.