Thrive Game Development
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  Latest imagesLatest images  SearchSearch  RegisterRegister  Log inLog in  
Welcome new and returning members!
If you're new, read around a bit before you post: the odds are we've already covered your suggestion.
If you want to join the development team, sign up and tell us why.
ADMIN is pleased to note that this marquee has finally been updated.
ADMIN reminds you that the Devblog is REQUIRED reading.
Currently: The Microbe Stage GUI is under heavy development
Log in
Username:
Password:
Log in automatically: 
:: I forgot my password
Quick Links
Website
/r/thrive
GitHub
FAQs
Wiki
New Posts
Search
 
 

Display results as :
 
Rechercher Advanced Search
Statistics
We have 1675 registered users
The newest registered user is dejo123

Our users have posted a total of 30851 messages in 1411 subjects
Who is online?
In total there is 1 user online :: 0 Registered, 0 Hidden and 1 Guest

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
troubleshooting - Development troubleshooting - Page 4 Emptyby NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
troubleshooting - Development troubleshooting - Page 4 Emptyby NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
troubleshooting - Development troubleshooting - Page 4 Emptyby crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
troubleshooting - Development troubleshooting - Page 4 Emptyby tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
troubleshooting - Development troubleshooting - Page 4 Emptyby NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
troubleshooting - Development troubleshooting - Page 4 Emptyby NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
troubleshooting - Development troubleshooting - Page 4 Emptyby crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
troubleshooting - Development troubleshooting - Page 4 Emptyby The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
troubleshooting - Development troubleshooting - Page 4 Emptyby crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
troubleshooting - Development troubleshooting - Page 4 Emptyby MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
troubleshooting - Development troubleshooting - Page 4 Emptyby tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
troubleshooting - Development troubleshooting - Page 4 Emptyby tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
troubleshooting - Development troubleshooting - Page 4 Emptyby Kaiju4u Wed Jun 10, 2015 11:16 am

» Presentation
troubleshooting - Development troubleshooting - Page 4 Emptyby Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
troubleshooting - Development troubleshooting - Page 4 Emptyby crovea Sun May 31, 2015 5:06 pm

» want to contribute
troubleshooting - Development troubleshooting - Page 4 Emptyby Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
troubleshooting - Development troubleshooting - Page 4 Emptyby Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
troubleshooting - Development troubleshooting - Page 4 Emptyby Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
troubleshooting - Development troubleshooting - Page 4 Emptyby TheBudderBros Sun May 24, 2015 9:00 pm

» A new round of Forum Revamps!
troubleshooting - Development troubleshooting - Page 4 Emptyby Oliveriver Wed May 20, 2015 11:32 am


 

 Development troubleshooting

Go down 
+6
benjamin71113
utikawa
HariboTer
Nimbal
SuperLala
Seregon
10 posters
Go to page : Previous  1, 2, 3, 4, 5, 6  Next
AuthorMessage
utikawa
Newcomer



Posts : 7
Reputation : 1
Join date : 2013-12-19
Age : 45
Location : Suzano - SP - Brazil

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptyWed Dec 25, 2013 12:36 pm

I get this for ogre, ogre_dependencies, openAL... I think all packages that need cmake...

EDIT:

I did it! It is working now...
After some debugging in setup scripts, I found the issue: CMake path had no semicolon. I have just added a semicolon after CMake in my path environment variable and it is working now!
I think scripts should include a semicolon before append something to path to avoid this issue.

Best regards,
Marcelo Utikawa da Fonseca
Back to top Go down
benjamin71113




Posts : 2
Reputation : 0
Join date : 2014-01-27

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: OGRE compile errors   troubleshooting - Development troubleshooting - Page 4 EmptyTue Jan 28, 2014 2:01 am

I am on Gentoo Linux with OGRE 1.9 and CMake 2.8. I originaly had OGRE 1.8 installed, but when I tried to compile Thrive, it worked fine except for a linker error involving undefined references to a very small number of things involving matrices and angles. I assumed that my OGRE version was the problem (which was incorrect because it was a linker only error) and downloaded the OGRE 1.9 source code. I compiled this and after waiting about an hour, tried to run the build again. This time I got errors about not having the OgreOverlayElement class defined to derive OgreOverlayContainer from. The errors were not in the engine.cpp source but in the internal OGRE header files. This seems very strange and on examining the headers, it appears that there is no way it should have worked in the first place. Somehow, I was able to compile the OGRE samples without problems. What version(s) of OGRE has anybody else gotten to actually work, and if 1.9 is one of them, do the OgreOverlayContainer.h and OgreOverlayElement.h headers match the ones below? Also, why am I unable to compile Thrive, but able to compile other OGRE dependent programs?
OgreOverlayContainer.h:
Code:
/*
-----------------------------------------------------------------------------
This source file is part of OGRE
    (Object-oriented Graphics Rendering Engine)
For the latest info, see {It wont let me post URLs}

Copyright (c) 2000-2009 Torus Knot Software Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/

#ifndef __OverlayContainer_H__
#define __OverlayContainer_H__

namespace Ogre
{
  class OverlayContainer;
};

#include "OgrePrerequisites.h"
#include "OgreOverlayElement.h"
#include "OgreIteratorWrappers.h"


namespace Ogre {


   /** \addtogroup Core
   *  @{
   */
   /** \addtogroup Overlays
   *  @{
   */
   /** A 2D element which contains other OverlayElement instances.
    @remarks
        This is a specialisation of OverlayElement for 2D elements that contain other
        elements. These are also the smallest elements that can be attached directly
        to an Overlay.
    @remarks
        OverlayContainers should be managed using OverlayManager. This class is responsible for
        instantiating / deleting elements, and also for accepting new types of element
        from plugins etc.
    */
    class _OgreExport OverlayContainer : public OverlayElement
    {
    public:
        typedef map<String, OverlayElement*>::type ChildMap;
        typedef MapIterator<ChildMap> ChildIterator;
        typedef map<String, OverlayContainer*>::type ChildContainerMap;
        typedef MapIterator<ChildContainerMap> ChildContainerIterator;
    protected:
        // Map of all children
        ChildMap mChildren;
        // Map of container children (subset of mChildren)
        ChildContainerMap mChildContainers;

      bool mChildrenProcessEvents;
 
    public:
        /// Constructor: do not call direct, use OverlayManager::createOverlayElement
        OverlayContainer(const String& name);
        virtual ~OverlayContainer();

        /** Adds another OverlayElement to this container. */
        virtual void addChild(OverlayElement* elem);
        /** Adds another OverlayElement to this container. */
        virtual void addChildImpl(OverlayElement* elem);
        /** Add a nested container to this container. */
        virtual void addChildImpl(OverlayContainer* cont);
        /** Removes a named element from this container. */
        virtual void removeChild(const String& name);
        /** Gets the named child of this container. */
        virtual OverlayElement* getChild(const String& name);

      /** @copydoc OverlayElement::initialise */
      void initialise(void);

        void _addChild(OverlayElement* elem);
        void _removeChild(OverlayElement* elem) { _removeChild(elem->getName()); }
        void _removeChild(const String& name);

        /** Gets an object for iterating over all the children of this object. */
        virtual ChildIterator getChildIterator(void);

        /** Gets an iterator for just the container children of this object.
        @remarks
            Good for cascading updates without having to use RTTI
        */
        virtual ChildContainerIterator getChildContainerIterator(void);

      /** Tell the object and its children to recalculate */
      virtual void _positionsOutOfDate(void);

        /** Overridden from OverlayElement. */
        virtual void _update(void);

        /** Overridden from OverlayElement. */
        virtual ushort _notifyZOrder(ushort newZOrder);

        /** Overridden from OverlayElement. */
        virtual void _notifyViewport();

        /** Overridden from OverlayElement. */
        virtual void _notifyWorldTransforms(const Matrix4& xform);

        /** Overridden from OverlayElement. */
       virtual void _notifyParent(OverlayContainer* parent, Overlay* overlay);

        /** Overridden from OverlayElement. */
        virtual void _updateRenderQueue(RenderQueue* queue);

        /** Overridden from OverlayElement. */
      inline bool isContainer() const
      { return true; }

      /** Should this container pass events to their children */
      virtual inline bool isChildrenProcessEvents() const
      { return true; }

      /** Should this container pass events to their children */
      virtual inline void setChildrenProcessEvents(bool val)
      { mChildrenProcessEvents = val; }

        /** This returns a OverlayElement at position x,y. */
      virtual OverlayElement* findElementAt(Real x, Real y);      // relative to parent

       void copyFromTemplate(OverlayElement* templateOverlay);
        virtual OverlayElement* clone(const String& instanceName);

    };


   /** @} */
   /** @} */

}


#endif


OgreOverlayElement.h:
Code:
/*
-----------------------------------------------------------------------------
This source file is part of OGRE
(Object-oriented Graphics Rendering Engine)
For the latest info, see {It won't let me post URLs}

Copyright (c) 2000-2009 Torus Knot Software Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/

#ifndef __OverlayElement_H__
#define __OverlayElement_H__

#include "OgrePrerequisites.h"
#include "OgreString.h"
#include "OgreRenderable.h"
#include "OgreUTFString.h"
#include "OgreStringInterface.h"
#include "OgreOverlayElementCommands.h"

#include "OgreOverlayContainer.h"

#include "OgreColourValue.h"
#include "OgreRectangle.h"

#include "OgreOverlay.h"

namespace Ogre {
   /** \addtogroup Core
   *  @{
   */
   /** \addtogroup Overlays
   *  @{
   */

#if OGRE_UNICODE_SUPPORT
   typedef UTFString DisplayString;
#   define OGRE_DEREF_DISPLAYSTRING_ITERATOR(it) it.getCharacter()
#else
   typedef String DisplayString;
#   define OGRE_DEREF_DISPLAYSTRING_ITERATOR(it) *it
#endif
    /** Enum describing how the position / size of an element is to be recorded.
    */
    enum GuiMetricsMode
    {
        /// 'left', 'top', 'height' and 'width' are parametrics from 0.0 to 1.0
        GMM_RELATIVE,
        /// Positions & sizes are in absolute pixels
        GMM_PIXELS,
        /// Positions & sizes are in virtual pixels
        GMM_RELATIVE_ASPECT_ADJUSTED
    };

    /** Enum describing where '0' is in relation to the parent in the horizontal dimension.
    @remarks Affects how 'left' is interpreted.
    */
    enum GuiHorizontalAlignment
    {
        GHA_LEFT,
        GHA_CENTER,
        GHA_RIGHT
    };
    /** Enum describing where '0' is in relation to the parent in the vertical dimension.
    @remarks Affects how 'top' is interpreted.
    */
    enum GuiVerticalAlignment
    {
        GVA_TOP,
        GVA_CENTER,
        GVA_BOTTOM
    };

    /** Abstract definition of a 2D element to be displayed in an Overlay.
    @remarks
    This class abstracts all the details of a 2D element which will appear in
    an overlay. In fact, not all OverlayElement instances can be directly added to an
    Overlay, only those which are OverlayContainer instances (a subclass of this class).
    OverlayContainer objects can contain any OverlayElement however. This is just to
    enforce some level of grouping on widgets.
    @par
    OverlayElements should be managed using OverlayManager. This class is responsible for
    instantiating / deleting elements, and also for accepting new types of element
    from plugins etc.
    @par
    Note that positions / dimensions of 2D screen elements are expressed as parametric
    values (0.0 - 1.0) because this makes them resolution-independent. However, most
    screen resolutions have an aspect ratio of 1.3333:1 (width : height) so note that
    in physical pixels 0.5 is wider than it is tall, so a 0.5x0.5 panel will not be
    square on the screen (but it will take up exactly half the screen in both dimensions).
    @par
    Because this class is designed to be extensible, it subclasses from StringInterface
    so its parameters can be set in a generic way.
    */
    class _OgreExport OverlayElement : public StringInterface, public Renderable, public OverlayAlloc
    {
    public:

    protected:
        // Command object for setting / getting parameters
        static OverlayElementCommands::CmdLeft msLeftCmd;
        static OverlayElementCommands::CmdTop msTopCmd;
        static OverlayElementCommands::CmdWidth msWidthCmd;
        static OverlayElementCommands::CmdHeight msHeightCmd;
        static OverlayElementCommands::CmdMaterial msMaterialCmd;
        static OverlayElementCommands::CmdCaption msCaptionCmd;
        static OverlayElementCommands::CmdMetricsMode msMetricsModeCmd;
        static OverlayElementCommands::CmdHorizontalAlign msHorizontalAlignCmd;
        static OverlayElementCommands::CmdVerticalAlign msVerticalAlignCmd;
        static OverlayElementCommands::CmdVisible msVisibleCmd;


        String mName;
        bool mVisible;
        bool mCloneable;
        Real mLeft;
        Real mTop;
        Real mWidth;
        Real mHeight;
        String mMaterialName;
        MaterialPtr mpMaterial;
        DisplayString mCaption;
        ColourValue mColour;
        Rectangle mClippingRegion;

        GuiMetricsMode mMetricsMode;
        GuiHorizontalAlignment mHorzAlign;
        GuiVerticalAlignment mVertAlign;

        // metric-mode positions, used in GMM_PIXELS & GMM_RELATIVE_ASPECT_ADJUSTED mode.
        Real mPixelTop;
        Real mPixelLeft;
        Real mPixelWidth;
        Real mPixelHeight;
        Real mPixelScaleX;
        Real mPixelScaleY;

        // Parent pointer
        OverlayContainer* mParent;
        // Overlay attached to
        Overlay* mOverlay;

        // Derived positions from parent
        Real mDerivedLeft;
        Real mDerivedTop;
        bool mDerivedOutOfDate;

        /// Flag indicating if the vertex positions need recalculating
        bool mGeomPositionsOutOfDate;
      /// Flag indicating if the vertex uvs need recalculating
      bool mGeomUVsOutOfDate;

        // Zorder for when sending to render queue
        // Derived from parent
        ushort mZOrder;

        // world transforms
        Matrix4 mXForm;

        // is element enabled
        bool mEnabled;

      // is element initialised
      bool mInitialised;

        // Used to see if this element is created from a Template
        OverlayElement* mSourceTemplate ;

        /** Internal method which is triggered when the positions of the element get updated,
        meaning the element should be rebuilding it's mesh positions. Abstract since
        subclasses must implement this.
        */
        virtual void updatePositionGeometry(void) = 0;
      /** Internal method which is triggered when the UVs of the element get updated,
      meaning the element should be rebuilding it's mesh UVs. Abstract since
      subclasses must implement this.
      */
      virtual void updateTextureGeometry(void) = 0;

        /** Internal method for setting up the basic parameter definitions for a subclass.
        @remarks
        Because StringInterface holds a dictionary of parameters per class, subclasses need to
        call this to ask the base class to add it's parameters to their dictionary as well.
        Can't do this in the constructor because that runs in a non-virtual context.
        @par
        The subclass must have called it's own createParamDictionary before calling this method.
        */
        virtual void addBaseParameters(void);

    public:
        /// Constructor: do not call direct, use OverlayManager::createElement
        OverlayElement(const String& name);
        virtual ~OverlayElement();

        /** Initialise gui element */
        virtual void initialise(void) = 0;

        /** Gets the name of this overlay. */
        const String& getName(void) const;


        /** Shows this element if it was hidden. */
        virtual void show(void);

        /** Hides this element if it was visible. */
        virtual void hide(void);

        /** Returns whether or not the element is visible. */
        bool isVisible(void) const;

        bool isEnabled() const;
        virtual void setEnabled(bool b);


        /** Sets the dimensions of this element in relation to the screen (1.0 = screen width/height). */
        void setDimensions(Real width, Real height);

        /** Sets the position of the top-left corner of the element, relative to the screen size
        (1.0 = screen width / height) */
        void setPosition(Real left, Real top);

        /** Sets the width of this element in relation to the screen (where 1.0 = screen width) */
        void setWidth(Real width);
        /** Gets the width of this element in relation to the screen (where 1.0 = screen width) */
        Real getWidth(void) const;

        /** Sets the height of this element in relation to the screen (where 1.0 = screen height) */
        void setHeight(Real height);
        /** Gets the height of this element in relation to the screen (where 1.0 = screen height) */
        Real getHeight(void) const;

        /** Sets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right) */
        void setLeft(Real left);
        /** Gets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right)  */
        Real getLeft(void) const;

        /** Sets the top of this element in relation to the screen (where 0 = top, 1.0 = bottom) */
        void setTop(Real Top);
        /** Gets the top of this element in relation to the screen (where 0 = top, 1.0 = bottom)  */
        Real getTop(void) const;

        /** Gets the left of this element in relation to the screen (where 0 = far left, 1.0 = far right)  */
        Real _getLeft(void) const { return mLeft; }
        /** Gets the top of this element in relation to the screen (where 0 = far left, 1.0 = far right)  */
        Real _getTop(void) const { return mTop; }
        /** Gets the width of this element in relation to the screen (where 1.0 = screen width)  */
        Real _getWidth(void) const { return mWidth; }
        /** Gets the height of this element in relation to the screen (where 1.0 = screen height)  */
        Real _getHeight(void) const { return mHeight; }
        /** Sets the left of this element in relation to the screen (where 1.0 = screen width) */
        void _setLeft(Real left);
        /** Sets the top of this element in relation to the screen (where 1.0 = screen width) */
        void _setTop(Real top);
        /** Sets the width of this element in relation to the screen (where 1.0 = screen width) */
        void _setWidth(Real width);
        /** Sets the height of this element in relation to the screen (where 1.0 = screen width) */
        void _setHeight(Real height);
        /** Sets the left and top of this element in relation to the screen (where 1.0 = screen width) */
        void _setPosition(Real left, Real top);
        /** Sets the width and height of this element in relation to the screen (where 1.0 = screen width) */
        void _setDimensions(Real width, Real height);

        /** Gets the name of the material this element uses. */
        virtual const String& getMaterialName(void) const;

        /** Sets the name of the material this element will use.
        @remarks
        Different elements will use different materials. One constant about them
        all though is that a Material used for a OverlayElement must have it's depth
        checking set to 'off', which means it always gets rendered on top. OGRE
        will set this flag for you if necessary. What it does mean though is that
        you should not use the same Material for rendering OverlayElements as standard
        scene objects. It's fine to use the same textures, just not the same
        Material.
        */
        virtual void setMaterialName(const String& matName);


        // --- Renderable Overrides ---
        /** See Renderable */
        const MaterialPtr& getMaterial(void) const;

        // NB getRenderOperation not implemented, still abstract here

        /** See Renderable */
        void getWorldTransforms(Matrix4* xform) const;

        /** Tell the object to recalculate */
        virtual void _positionsOutOfDate(void);

        /** Internal method to update the element based on transforms applied. */
        virtual void _update(void);

        /** Updates this elements transform based on it's parent. */
        virtual void _updateFromParent(void);

        /** Internal method for notifying the GUI element of it's parent and ultimate overlay. */
        virtual void _notifyParent(OverlayContainer* parent, Overlay* overlay);

        /** Gets the 'left' position as derived from own left and that of parents. */
        virtual Real _getDerivedLeft(void);

        /** Gets the 'top' position as derived from own left and that of parents. */
        virtual Real _getDerivedTop(void);

      /** Gets the 'width' as derived from own width and metrics mode. */
      virtual Real _getRelativeWidth(void);
      /** Gets the 'height' as derived from own height and metrics mode. */
      virtual Real _getRelativeHeight(void);


        /** Gets the clipping region of the element */
        virtual void _getClippingRegion(Rectangle &clippingRegion);

        /** Internal method to notify the element when Zorder of parent overlay
        has changed.
        @remarks
        Overlays have explicit Z orders. OverlayElements do not, they inherit the
        ZOrder of the overlay, and the Zorder is incremented for every container
        nested within this to ensure that containers are displayed behind contained
        items. This method is used internally to notify the element of a change in
        final zorder which is used to render the element.
      @return Return the next zordering number available. For single elements, this
      is simply newZOrder + 1, but for containers, they increment it once for each
      child (more if those children are also containers).
        */
        virtual ushort _notifyZOrder(ushort newZOrder);

        /** Internal method to notify the element when it's world transform
        of parent overlay has changed.
        */
        virtual void _notifyWorldTransforms(const Matrix4& xform);

        /** Internal method to notify the element when the viewport
        of parent overlay has changed.
        */
        virtual void _notifyViewport();

        /** Internal method to put the contents onto the render queue. */
        virtual void _updateRenderQueue(RenderQueue* queue);

      /// @copydoc MovableObject::visitRenderables
      void visitRenderables(Renderable::Visitor* visitor,
         bool debugRenderables = false);

        /** Gets the type name of the element. All concrete subclasses must implement this. */
        virtual const String& getTypeName(void) const = 0;

        /** Sets the caption on elements that support it.
        @remarks
        This property doesn't do something on all elements, just those that support it.
        However, being a common requirement it is in the top-level interface to avoid
        having to set it via the StringInterface all the time.
        */
      virtual void setCaption(const DisplayString& text);
        /** Gets the caption for this element. */
        virtual const DisplayString& getCaption(void) const;
        /** Sets the colour on elements that support it.
        @remarks
        This property doesn't do something on all elements, just those that support it.
        However, being a common requirement it is in the top-level interface to avoid
        having to set it via the StringInterface all the time.
        */
        virtual void setColour(const ColourValue& col);

        /** Gets the colour for this element. */
        virtual const ColourValue& getColour(void) const;

        /** Tells this element how to interpret the position and dimension values it is given.
        @remarks
        By default, OverlayElements are positioned and sized according to relative dimensions
        of the screen. This is to ensure portability between different resolutions when you
        want things to be positioned and sized the same way across all resolutions. However,
        sometimes you want things to be sized according to fixed pixels. In order to do this,
        you can call this method with the parameter GMM_PIXELS. Note that if you then want
        to place your element relative to the center, right or bottom of it's parent, you will
        need to use the setHorizontalAlignment and setVerticalAlignment methods.
        */
        virtual void setMetricsMode(GuiMetricsMode gmm);
        /** Retrieves the current settings of how the element metrics are interpreted. */
        virtual GuiMetricsMode getMetricsMode(void) const;
        /** Sets the horizontal origin for this element.
        @remarks
        By default, the horizontal origin for a OverlayElement is the left edge of the parent container
        (or the screen if this is a root element). You can alter this by calling this method, which is
        especially useful when you want to use pixel-based metrics (see setMetricsMode) since in this
        mode you can't use relative positioning.
        @par
        For example, if you were using GMM_PIXELS metrics mode, and you wanted to place a 30x30 pixel
        crosshair in the center of the screen, you would use GHA_CENTER with a 'left' property of -15.
        @par
        Note that neither GHA_CENTER or GHA_RIGHT alter the position of the element based
        on it's width, you have to alter the 'left' to a negative number to do that; all this
        does is establish the origin. This is because this way you can align multiple things
        in the center and right with different 'left' offsets for maximum flexibility.
        */
        virtual void setHorizontalAlignment(GuiHorizontalAlignment gha);
        /** Gets the horizontal alignment for this element. */
        virtual GuiHorizontalAlignment getHorizontalAlignment(void) const;
        /** Sets the vertical origin for this element.
        @remarks
        By default, the vertical origin for a OverlayElement is the top edge of the parent container
        (or the screen if this is a root element). You can alter this by calling this method, which is
        especially useful when you want to use pixel-based metrics (see setMetricsMode) since in this
        mode you can't use relative positioning.
        @par
        For example, if you were using GMM_PIXELS metrics mode, and you wanted to place a 30x30 pixel
        crosshair in the center of the screen, you would use GHA_CENTER with a 'top' property of -15.
        @par
        Note that neither GVA_CENTER or GVA_BOTTOM alter the position of the element based
        on it's height, you have to alter the 'top' to a negative number to do that; all this
        does is establish the origin. This is because this way you can align multiple things
        in the center and bottom with different 'top' offsets for maximum flexibility.
        */
        virtual void setVerticalAlignment(GuiVerticalAlignment gva);
        /** Gets the vertical alignment for this element. */
        virtual GuiVerticalAlignment getVerticalAlignment(void) const;




        /** Returns true if xy is within the constraints of the component */
        virtual bool contains(Real x, Real y) const;

        /** Returns true if xy is within the constraints of the component */
        virtual OverlayElement* findElementAt(Real x, Real y);      // relative to parent

        /**
        * returns false as this class is not a container type
        */
        inline virtual bool isContainer() const
        { return false; }

        inline virtual bool isKeyEnabled() const
        { return false; }

        inline virtual bool isCloneable() const
        { return mCloneable; }

        inline virtual void setCloneable(bool c)
        { mCloneable = c; }

        /**
        * Returns the parent container.
        */
        OverlayContainer* getParent() ;
        void _setParent(OverlayContainer* parent) { mParent = parent; }

        /**
        * Returns the zOrder of the element
        */
        inline ushort getZOrder() const
        { return mZOrder; }

        /** Overridden from Renderable */
        Real getSquaredViewDepth(const Camera* cam) const
        {
            (void)cam;
            return 10000.0f - (Real)getZOrder();
        }

        /** @copydoc Renderable::getLights */
        const LightList& getLights(void) const
        {
            // Overlayelements should not be lit by the scene, this will not get called
            static LightList ll;
            return ll;
        }

        virtual void copyFromTemplate(OverlayElement* templateOverlay);
        virtual OverlayElement* clone(const String& instanceName);

        // Returns the SourceTemplate for this element
        const OverlayElement* getSourceTemplate () const {
          return mSourceTemplate ;
        }
    };


   /** @} */
   /** @} */

}


#endif

Back to top Go down
Nimbal
Programming Team lead



Posts : 258
Reputation : 24
Join date : 2013-03-17
Age : 39
Location : Ratingen, Germany

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptyTue Jan 28, 2014 8:47 am

Ogre 1.8 should be the right one, I don't know if 1.9 is compatible. Can you post the full error message? Both the 1.9 problem with the headers and the 1.8 linker error if you still have that.
Back to top Go down
benjamin71113




Posts : 2
Reputation : 0
Join date : 2014-01-27

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptyTue Jan 28, 2014 9:43 pm

I recently fixed the problem with the headers. This was because I made the mistake of not cleaning the /usr/local/include/OGRE directory before I ran make install. This meant that it was refusing to overwrite some headers. In order to compile the game correctly I needed to change every mention of Overlay*.hpp in a #include to Overlays/Overlay*.hpp, because of OGREs component system. I don't hvae the linker error anymore, and did not think of copying it to a file when I first got it. I remember now that it was with the ToAxisAngle method of Matrix3x3. I don't have the header error message either but since I fixed that it does not really matter anymore. I think that the linker error was probably caused by the same problem because I had originally installed OGRE 1.8 from the Gentoo package manager, but had problems with it. I then compiled 1.8 from source. This happened a long time ago and I think that the problem was the same: it refused to overwrite the libraries. My new problem is that the assertion checking that the game state is not null failed. The exact error message here is:
Code:
Thrive: /root/downloads/thrive/Thrive/src/engine/engine.cpp:609: void thrive::Engine::update(int): Assertion `m_impl->m_currentGameState != nullptr' failed.
Aborted
In addition, when running unit tests, EntityFilter.Record fails. The exact failure message is:
Code:
[ RUN      ] EntityFilter.Record
/root/downloads/thrive/Thrive/src/engine/tests/entity_filter.cpp:211: Failure
Value of: filter.removedEntities().count(entityId)
  Actual: 0
Expected: 1
I have not modified any part of the entity management, so I do not see where this could be coming from. I am going to try modifying the engine to be more verbose so that I can see what is actually going on and whether these two problems are related.
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySat May 17, 2014 10:09 am

A couple days ago I finally figured out why cmake was erroring out trying to build thrive. My computer broke in the meantime, but now that it's running again I can make sure I build everything right. Sadly I no longer have the patience to fumble through the builds, so, can any ubuntu users walk me through building Ogre and CEGUI in debug? The more exact the steps the better, as I plan on turning my blundering into a build script for Travis et al. With that in mind, if anyone has build scripts I can tweak, that'll work too.


Last edited by moopli on Sat May 17, 2014 10:14 am; edited 1 time in total (Reason for editing : clarified a sentence)
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySat May 17, 2014 12:28 pm

I'm afraid all you're going to get is me, I don't think there is any experienced linux devs currently active on the forums.

timlyo running arch, just posted asking for assistance as well: https://thrivegame.canadaboard.net/t1411-trouble-with-cmake-and-cegui#29902 so hopefully the three of us can figure it out.

In terms of ogre, installing the dev version of the ogre package should be sufficient, but I cant' be sure yet.

I'm working on building CEGUI as debug myself on my mint VM. It should be as simple as a flag -DCEGUI_BUILD_TYPE=Debug to cmake, but that doesn't seem to work for me. Our windows scripts that are building debug, and using a special version of make as well, simply use that flag which works, so its a bit of a mystery.
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySat May 17, 2014 10:42 pm

Important lesson I just learned:

So, I was reinstalling CEGUI in debug, and I kept running into these cryptic cannot-copy-file errors. The files were different every time, and after poring through the makefiles, .cmakes, etc, I gave up and decided to just manually copy over an offending file. And then I find out that it simply isn't possible. Why? Disk space is finite.

After a cleanup though, CEGUI installed perfectly. But when trying to build thrive itself cmake complained again of missing CEGUI debug files. So I decided to build in release to see if that was the only issue, and cmake pulled through. but now make spits out loads of cryptic errors when trying to compile game.cpp. One thing I noticed was the boost clock not being found, so I gave cmake more paths so it would complain less. Now it seems like boost is no longer an issue, but game.cpp still falls to pieces when compiling. Any ideas?
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 7:47 am

Strange how you solved the CEGUI problem. I think the issue I have been having is that the project is expecting library files ending in '_d' for debug, but it seems that when I build in debug mode it doesn't add that postfix. A simple renaming got through that.

I don't think I've experienced your issue with game.cpp so you'll have to post your error messages.
Back to top Go down
timlyo
Newcomer
timlyo


Posts : 19
Reputation : 0
Join date : 2013-09-04
Age : 28
Location : England

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 7:56 am

I've just had the exact same issue with them not ending in _d, renaming also fixed that. Everything seems to be compiling fine now although I'm getting a segmentation fault when I run it.

Code:
Thrive: /usr/include/cegui-0/CEGUI/Singleton.h:79: static T& CEGUI::Singleton<T>::getSingleton() [with T = CEGUI::WindowManager]: Assertion `ms_Singleton' failed.
Aborted (core dumped)
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 10:12 am

So, after swapping in the FindCEGUI timiyo found, I managed to generate debug makefiles (oddly enough, no renaming needed, so I'm doubtful they were indeed debug). But once again, I ran into more of the same errors when building game.cpp:

Code:
[  9%] Built target OgreOggSound
[ 36%] Built target lua
[ 53%] Built target luabind
[ 53%] Building CXX object CMakeFiles/ThriveLib.dir/src/game.cpp.o
In file included from /home/filip/Desktop/THRIVE/thrive/src/engine/engine.h:3:0,
                 from /home/filip/Desktop/THRIVE/thrive/src/game.cpp:3:
/home/filip/Desktop/THRIVE/thrive/src/engine/game_state.h:48:11: error: expected nested-name-specifier before ‘Initializer’
/home/filip/Desktop/THRIVE/thrive/src/engine/game_state.h:48:11: error: using-declaration for non-member at class scope
/home/filip/Desktop/THRIVE/thrive/src/engine/game_state.h:48:23: error: expected ‘;’ before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/game_state.h:48:23: error: expected unqualified-id before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/game_state.h:175:9: error: ‘Initializer’ has not been declared
In file included from /home/filip/Desktop/THRIVE/thrive/src/engine/engine.h:4:0,
                 from /home/filip/Desktop/THRIVE/thrive/src/game.cpp:3:
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:8:11: error: expected nested-name-specifier before ‘ComponentTypeId’
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:8:11: error: ‘ComponentTypeId’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:8:27: error: expected ‘;’ before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:8:27: error: expected unqualified-id before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:10:11: error: expected nested-name-specifier before ‘EntityId’
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:10:11: error: ‘EntityId’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:10:20: error: expected ‘;’ before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:10:20: error: expected unqualified-id before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:12:11: error: expected nested-name-specifier before ‘Milliseconds’
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:12:11: error: ‘Milliseconds’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:12:24: error: expected ‘;’ before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:12:24: error: expected unqualified-id before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:19:18: error: ‘EntityId’ does not name a type
/home/filip/Desktop/THRIVE/thrive/src/engine/typedefs.h:21:18: error: ‘ComponentTypeId’ does not name a type
In file included from /home/filip/Desktop/THRIVE/thrive/src/game.cpp:3:0:
/home/filip/Desktop/THRIVE/thrive/src/engine/engine.h:118:20: error: ‘thrive::GameState::Initializer’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/engine/engine.h:272:5: error: ‘EntityId’ does not name a type
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:17:11: error: expected nested-name-specifier before ‘Clock’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:17:11: error: using-declaration for non-member at class scope
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:17:17: error: expected ‘;’ before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:17:17: error: expected unqualified-id before ‘=’ token
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:28:40: sorry, unimplemented: non-static data member initializers
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:28:40: error: ISO C++ forbids in-class initialization of non-const static member ‘m_targetFrameRate’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:30:19: sorry, unimplemented: non-static data member initializers
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:30:19: error: ISO C++ forbids in-class initialization of non-const static member ‘m_quit’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp: In member function ‘void thrive::Game::run()’:
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:68:43: error: ‘thrive::Game::Implementation::Clock’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:68:54: error: unable to deduce ‘auto’ from ‘<expression error>’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:73:40: error: ‘thrive::Game::Implementation::Clock’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:73:51: error: unable to deduce ‘auto’ from ‘<expression error>’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:74:32: error: unable to deduce ‘auto’ from ‘<expression error>’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:78:50: error: ‘thrive::Game::Implementation::Clock’ has not been declared
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:78:65: error: unable to deduce ‘auto’ from ‘<expression error>’
/home/filip/Desktop/THRIVE/thrive/src/game.cpp:79:66: error: unable to deduce ‘auto’ from ‘<expression error>’
make[2]: *** [CMakeFiles/ThriveLib.dir/src/game.cpp.o] Error 1
make[1]: *** [CMakeFiles/ThriveLib.dir/all] Error 2
make: *** [all] Error 2

Since it's apologizing, it seems my gcc is too old (lo and behold, so it is. updating now). It also looks like c++(0x)|(11) isn't active. How did you guys reconfigure cmake so it is?
Back to top Go down
timlyo
Newcomer
timlyo


Posts : 19
Reputation : 0
Join date : 2013-09-04
Age : 28
Location : England

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 10:18 am

I've been looking through the Cmake file and at line 207 it seems to set it up to compile with C++11:

Code:
206 # Compile using c++11
207 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")

Although I've always used the "-std=c++11" flag to set up C++11
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 11:04 am

timlyo wrote:
I've always used the "-std=c++11" flag to set up C++11

Either one should work I believe.

Btw could one of you rerun cmake and try to use this FindCEGUI: http://pastebin.com/AXiUW8V7
Back to top Go down
timlyo
Newcomer
timlyo


Posts : 19
Reputation : 0
Join date : 2013-09-04
Age : 28
Location : England

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 11:19 am

I just tried that cmake module and it didn't work. This one however worked nicely:

https://gist.github.com/timlyo/fade51ddeecfca8cc56d
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 11:22 am

That won't work for people using our MinGW setup tho, but I'll just have to modify it!
Was hoping the minor adjustments I had made to the existing one would have worked :b
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 2:23 pm

So as I thought, the issue was due to having g++ and gcc past their prime. So i updated, build again, and ran into problems linking the tests:

Code:
Linking CXX executable RunTests
/usr/bin/ld: warning: libboost_system.so.1.48.0, needed by /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libboost_chrono-mt.so, may conflict with libboost_system.so.1.54.0
/usr/bin/ld: warning: libboost_thread.so.1.46.1, needed by /usr/local/lib/libOgreMain.so, may conflict with libboost_thread.so.1.54.0
libThrive.a(engine.cpp.o): In function `thrive::Engine::Implementation::setupGUI()':
/home/filip/Desktop/THRIVE/thrive/src/engine/engine.cpp:308: undefined reference to `CEGUI::OgreRenderer::bootstrapSystem(int)'
collect2: error: ld returned 1 exit status
make[2]: *** [RunTests] Error 1
make[1]: *** [CMakeFiles/RunTests.dir/all] Error 2
make: *** [all] Error 2

God, I'm in dependency hell aren't I. Do I need to completely rebuild everything? Boost, OGRE, everything? Or is now the time when I give up and switch to windows? Or should I only worry about fixing that undefined reference?
Back to top Go down
timlyo
Newcomer
timlyo


Posts : 19
Reputation : 0
Join date : 2013-09-04
Age : 28
Location : England

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 2:33 pm

That's just a warning, chances are it'll be fine. The undefined reference is the real problem.
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 3:40 pm

The undefined reference looks like it was caused by CEGUI not being able to find ogre when you compiled it. Could you re-run the cmake   (you don't have to do make) and check that it says OGRE FOUND.

Setting it up on windows takes a long time, a lot of space and people have some issues with it sometimes as well so I'm not sure that would even be easier when you've gotten this far.

All the CEGUI issues are mostly my fault as it has been my first experience with large build scripts, and my first experience with cross-compilation especially. Hopefully we can sort the issues out together.
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 4:24 pm

crovea wrote:
... CEGUI not being able to find ogre ...
Sadly, that's not it, as CEGUI did in fact find Ogre:
cmake wrote:
Looking for OGRE...
Found Ogre Byatis (1.8.1)
And what's more, thrive also found CEGUIOgreRenderer, but complained of missing CEGUI "module package blah blah"
make wrote:
... checking for module 'CEGUI'
--   package 'CEGUI' not found
...
Looking for CEGUI_OgreRenderer...
-- Found CEGUI_OgreRenderer: optimized;/usr/local/lib;debug;/usr/local/lib/libCEGUIOgreRenderer-0.so
And a quick rebuild reveals the same issue as before -- everything except RunTests is (seems?) fine, and RunTests fails to link, thanks to the missing CEGUI::OgreRenderer::bootstrapSystem(int).

Any more ideas?


Last edited by moopli on Sun May 18, 2014 4:47 pm; edited 2 times in total (Reason for editing : more stuffs)
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 4:56 pm

The problem must be your making not finding CEGUI. Could you try renaming your CEGUI base and OgreRenderer libraries so they end with '_d'.

The undefined reference means that it found the function in a header file, but couldn't find where it was implemented if I'm not mistaken, suggesting it doesn't link to the CEGUI libraries.

Also could you post the entire output from cmake and possibly make, perhaps I can notice something wrong.

I'll be off to bed in an hour or so btw :b
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 5:11 pm

Here you go:
CEGUI cmake:
Code:
Looking for OGRE...
Found Ogre Byatis (1.8.1)
Found OGRE: optimized;/usr/local/lib/libOgreMain.so;debug;/usr/local/lib/libOgreMain.so
Looking for OGRE_Paging...
Found OGRE_Paging: optimized;/usr/local/lib/libOgrePaging.so;debug;/usr/local/lib/libOgrePaging.so
Looking for OGRE_Terrain...
Found OGRE_Terrain: optimized;/usr/local/lib/libOgreTerrain.so;debug;/usr/local/lib/libOgreTerrain.so
Looking for OGRE_Property...
Found OGRE_Property: optimized;/usr/local/lib/libOgreProperty.so;debug;/usr/local/lib/libOgreProperty.so
Looking for OGRE_RTShaderSystem...
Found OGRE_RTShaderSystem: optimized;/usr/local/lib/libOgreRTShaderSystem.so;debug;/usr/local/lib/libOgreRTShaderSystem.so
checking for module 'CEGUI'
  package 'CEGUI' not found
Looking for CEGUI_CoreWindowRendererSet...
Found CEGUI_CoreWindowRendererSet: /usr/local/lib/cegui-0.8/libCEGUICoreWindowRendererSet.so
Looking for CEGUI_Direct3D9Renderer...
Could not locate CEGUI_Direct3D9Renderer
Looking for CEGUI_Direct3D10Renderer...
Could not locate CEGUI_Direct3D10Renderer
Looking for CEGUI_Direct3D11Renderer...
Could not locate CEGUI_Direct3D11Renderer
Looking for CEGUI_IrrlichtRenderer...
Could not locate CEGUI_IrrlichtRenderer
Looking for CEGUI_NullRenderer...
Found CEGUI_NullRenderer: optimized;/usr/local/lib/libCEGUINullRenderer-0.so;debug;/usr/local/lib/libCEGUINullRenderer-0.so
Looking for CEGUI_OgreRenderer...
Found CEGUI_OgreRenderer: optimized;/usr/local/lib;debug;/usr/local/lib/libCEGUIOgreRenderer-0.so
Looking for CEGUI_OpenGLRenderer...
Could not locate CEGUI_OpenGLRenderer
Looking for CEGUI_CoronaImageCodec...
Could not locate CEGUI_CoronaImageCodec
Looking for CEGUI_DevILImageCodec...
Could not locate CEGUI_DevILImageCodec
Looking for CEGUI_FreeImageImageCodec...
Found CEGUI_FreeImageImageCodec: /usr/local/lib/cegui-0.8/libCEGUIFreeImageImageCodec.so
Looking for CEGUI_SILLYImageCodec...
Could not locate CEGUI_SILLYImageCodec
Looking for CEGUI_STBImageCodec...
Found CEGUI_STBImageCodec: /usr/local/lib/cegui-0.8/libCEGUISTBImageCodec.so
Looking for CEGUI_TGAImageCodec...
Found CEGUI_TGAImageCodec: /usr/local/lib/cegui-0.8/libCEGUITGAImageCodec.so
Looking for CEGUI_ExpatParser...
Found CEGUI_ExpatParser: /usr/local/lib/cegui-0.8/libCEGUIExpatParser.so
Looking for CEGUI_LibXMLParser...
Could not locate CEGUI_LibXMLParser
Looking for CEGUI_RapidXMLParser...
Could not locate CEGUI_RapidXMLParser
Looking for CEGUI_TinyXMLParser...
Found CEGUI_TinyXMLParser: /usr/local/lib/cegui-0.8/libCEGUITinyXMLParser.so
Looking for CEGUI_XercesParser...
Could not locate CEGUI_XercesParser
Looking for CEGUI_LuaScriptModule...
Could not locate CEGUI_LuaScriptModule
checking for module 'OpenAL'
  package 'OpenAL' not found
checking for module 'Ogg'
  package 'Ogg' not found
Found Ogg
checking for module 'Vorbis'
  package 'Vorbis' not found
Found Vorbis
Boost version: 1.54.0
Found the following Boost libraries:
  thread
checking for module 'OpenAL'
  package 'OpenAL' not found
Looking for OGRE...
Found Ogre Byatis (1.8.1)
Looking for OGRE_Paging...
Looking for OGRE_Terrain...
Looking for OGRE_Property...
Looking for OGRE_RTShaderSystem...
checking for module 'Ogg'
  package 'Ogg' not found
checking for module 'Vorbis'
  package 'Vorbis' not found
Configuring done

Thrive make before renaming libCEGUIBase-0.so to libCEGUIBase-0_d.so and libCEGUIOgreRenderer-0.so to libCEGUIOgreRenderer-0_d.so:
Code:
thrive/build$ make
[ 27%] Built target lua
[ 44%] Built target luabind
[ 53%] Built target OgreOggSound
[ 92%] Built target ThriveLib
[ 92%] Built target gtest
[ 93%] Built target gtest_main
Linking CXX executable RunTests
/usr/bin/ld: warning: libboost_system.so.1.48.0, needed by /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libboost_chrono-mt.so, may conflict with libboost_system.so.1.54.0
/usr/bin/ld: warning: libboost_thread.so.1.46.1, needed by /usr/local/lib/libOgreMain.so, may conflict with libboost_thread.so.1.54.0
libThrive.a(engine.cpp.o): In function `thrive::Engine::Implementation::setupGUI()':
/home/filip/Desktop/THRIVE/thrive/src/engine/engine.cpp:308: undefined reference to `CEGUI::OgreRenderer::bootstrapSystem(int)'
collect2: error: ld returned 1 exit status
make[2]: *** [RunTests] Error 1
make[1]: *** [CMakeFiles/RunTests.dir/all] Error 2
make: *** [all] Error 2

And after:
Code:
thrive/build$ make
[ 27%] Built target lua
[ 44%] Built target luabind
[ 53%] Built target OgreOggSound
[ 92%] Built target ThriveLib
[ 92%] Built target gtest
[ 93%] Built target gtest_main
make[2]: *** No rule to make target `/usr/local/lib/libCEGUIBase-0.so', needed by `RunTests'.  Stop.
make[1]: *** [CMakeFiles/RunTests.dir/all] Error 2
make: *** [all] Error 2

So I'm guessing it's upset with my renaming?

EDIT:
Oh you probably want thrive cmake too huh? here:
Code:
Looking for OGRE...
Found Ogre Byatis (1.8.1)
Found OGRE: optimized;/usr/local/lib/libOgreMain.so;debug;/usr/local/lib/libOgreMain.so
Looking for OGRE_Paging...
Found OGRE_Paging: optimized;/usr/local/lib/libOgrePaging.so;debug;/usr/local/lib/libOgrePaging.so
Looking for OGRE_Terrain...
Found OGRE_Terrain: optimized;/usr/local/lib/libOgreTerrain.so;debug;/usr/local/lib/libOgreTerrain.so
Looking for OGRE_Property...
Found OGRE_Property: optimized;/usr/local/lib/libOgreProperty.so;debug;/usr/local/lib/libOgreProperty.so
Looking for OGRE_RTShaderSystem...
Found OGRE_RTShaderSystem: optimized;/usr/local/lib/libOgreRTShaderSystem.so;debug;/usr/local/lib/libOgreRTShaderSystem.so
checking for module 'CEGUI'
  package 'CEGUI' not found
Looking for CEGUI_CoreWindowRendererSet...
Found CEGUI_CoreWindowRendererSet: /usr/local/lib/cegui-0.8/libCEGUICoreWindowRendererSet.so
Looking for CEGUI_Direct3D9Renderer...
Could not locate CEGUI_Direct3D9Renderer
Looking for CEGUI_Direct3D10Renderer...
Could not locate CEGUI_Direct3D10Renderer
Looking for CEGUI_Direct3D11Renderer...
Could not locate CEGUI_Direct3D11Renderer
Looking for CEGUI_IrrlichtRenderer...
Could not locate CEGUI_IrrlichtRenderer
Looking for CEGUI_NullRenderer...
Found CEGUI_NullRenderer: optimized;/usr/local/lib/libCEGUINullRenderer-0.so;debug;/usr/local/lib/libCEGUINullRenderer-0.so
Looking for CEGUI_OgreRenderer...
Found CEGUI_OgreRenderer: optimized;/usr/local/lib;debug;/usr/local/lib/libCEGUIOgreRenderer-0.so
Looking for CEGUI_OpenGLRenderer...
Could not locate CEGUI_OpenGLRenderer
Looking for CEGUI_CoronaImageCodec...
Could not locate CEGUI_CoronaImageCodec
Looking for CEGUI_DevILImageCodec...
Could not locate CEGUI_DevILImageCodec
Looking for CEGUI_FreeImageImageCodec...
Found CEGUI_FreeImageImageCodec: /usr/local/lib/cegui-0.8/libCEGUIFreeImageImageCodec.so
Looking for CEGUI_SILLYImageCodec...
Could not locate CEGUI_SILLYImageCodec
Looking for CEGUI_STBImageCodec...
Found CEGUI_STBImageCodec: /usr/local/lib/cegui-0.8/libCEGUISTBImageCodec.so
Looking for CEGUI_TGAImageCodec...
Found CEGUI_TGAImageCodec: /usr/local/lib/cegui-0.8/libCEGUITGAImageCodec.so
Looking for CEGUI_ExpatParser...
Found CEGUI_ExpatParser: /usr/local/lib/cegui-0.8/libCEGUIExpatParser.so
Looking for CEGUI_LibXMLParser...
Could not locate CEGUI_LibXMLParser
Looking for CEGUI_RapidXMLParser...
Could not locate CEGUI_RapidXMLParser
Looking for CEGUI_TinyXMLParser...
Found CEGUI_TinyXMLParser: /usr/local/lib/cegui-0.8/libCEGUITinyXMLParser.so
Looking for CEGUI_XercesParser...
Could not locate CEGUI_XercesParser
Looking for CEGUI_LuaScriptModule...
Could not locate CEGUI_LuaScriptModule
checking for module 'OpenAL'
  package 'OpenAL' not found
checking for module 'Ogg'
  package 'Ogg' not found
Found Ogg
checking for module 'Vorbis'
  package 'Vorbis' not found
Found Vorbis
Boost version: 1.54.0
Found the following Boost libraries:
  thread
checking for module 'OpenAL'
  package 'OpenAL' not found
Looking for OGRE...
Found Ogre Byatis (1.8.1)
Looking for OGRE_Paging...
Looking for OGRE_Terrain...
Looking for OGRE_Property...
Looking for OGRE_RTShaderSystem...
checking for module 'Ogg'
  package 'Ogg' not found
checking for module 'Vorbis'
  package 'Vorbis' not found
Configuring done


Last edited by moopli on Sun May 18, 2014 5:17 pm; edited 1 time in total (Reason for editing : added sumting)
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 5:43 pm

You posted thrive cmake twice, but thats the important one anyway.

My cmake doesn't look for the CEGUI module at all or any of the other CEGUI stuff, which to my knowledge shouldn't even exist for this version of ogre, so that its not finding it really shouldn't be the problem after all, but its a bit wierd.

gtest is expecting the release version of CEGUI which is a bit odd, you could try supplying it with both with '_d' version and without. We should probably also be running the cmake for thrive with the -DCMAKE_BUILD_TYPE=Debug so thats another thing to try.

Btw did you compile ogre yourself to get 1.8.1? My VMs aptitude can't seem to get a package newer than 1.8.0


Last edited by crovea on Sun May 18, 2014 5:56 pm; edited 1 time in total
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 5:48 pm

That's what I got after I copied both CEGUIblah-0.so to CEGUIblah-0_d.so -- so it should already be finding both debug and release. I've also already set CMAKE_BUILD_TYPE to Debug.

crovea wrote:
you could try supplying it with both with '_d' version and without

By that you mean ..?


Last edited by moopli on Sun May 18, 2014 5:49 pm; edited 1 time in total (Reason for editing : grammarfix)
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 5:57 pm

Quote :
By that you mean ..?

Sorry my brain isn't at its finest atm. I meant you could have both copies of the two libraries, both the ones ending in '_d' and those that don't end in '_d' such that gtest can find it's release versions but the rest hopefully uses the "debug" version.
Back to top Go down
moopli
Developer
moopli


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 28
Location : hanging from the chandelier

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 6:00 pm

Ah yes. Already did, which didn't help, as the errors indicate. Sorry for not being clearer about that. Anyway I won't keep you up, I can keep working on it myself.


Last edited by moopli on Sun May 18, 2014 6:03 pm; edited 1 time in total (Reason for editing : ooglyboogly)
Back to top Go down
crovea
Programming Team lead
crovea


Posts : 310
Reputation : 59
Join date : 2013-10-07
Age : 34
Location : Denmark

troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 EmptySun May 18, 2014 6:11 pm

You could try to add
Code:
message("DEBUG-TEST" ${CEGUI_LIBRARY})
thrives CMakeList.txt at line 236 to see if it even links to a CEGUI library. If it does, then it signifies there's something wrong with the CEGUI libraries and if it doesn't it should be fixable by helping it set that variable.

I'm off to bed, I got some people I might be able to ask for help tomorrow.
Back to top Go down
Sponsored content





troubleshooting - Development troubleshooting - Page 4 Empty
PostSubject: Re: Development troubleshooting   troubleshooting - Development troubleshooting - Page 4 Empty

Back to top Go down
 
Development troubleshooting
Back to top 
Page 4 of 6Go to page : Previous  1, 2, 3, 4, 5, 6  Next
 Similar topics
-
» I would like to help development.
» Two Questions Concerning Thrive's Development
» game development proccess
» Hello development team
» Development Bulletin: Microbe

Permissions in this forum:You cannot reply to topics in this forum
Thrive Game Development :: Development :: Programming-
Jump to: