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 are 9 users online :: 0 Registered, 0 Hidden and 9 Guests None Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm |
Latest topics | » THIS FORUM IS NOW OBSOLETE by NickTheNick Sat Sep 26, 2015 10:26 pm
» To all the people who come here looking for thrive. by NickTheNick Sat Sep 26, 2015 10:22 pm
» Build Error Code::Blocks / CMake by crovea Tue Jul 28, 2015 5:28 pm
» Hello! I can translate in japanese by tjwhale Thu Jul 02, 2015 7:23 pm
» On Leave (Offline thread) by NickTheNick Wed Jul 01, 2015 12:20 am
» Devblog #14: A Brave New Forum by NickTheNick Mon Jun 29, 2015 4:49 am
» Application for Programmer by crovea Fri Jun 26, 2015 11:14 am
» Re-Reapplication by The Creator Thu Jun 25, 2015 10:57 pm
» Application (programming) by crovea Tue Jun 23, 2015 8:00 am
» Achieving Sapience by MitochondriaBox Sun Jun 21, 2015 7:03 pm
» Microbe Stage GDD by tjwhale Sat Jun 20, 2015 3:44 pm
» Application for Programmer/ Theorist by tjwhale Wed Jun 17, 2015 9:56 am
» Application for a 3D Modeler. by Kaiju4u Wed Jun 10, 2015 11:16 am
» Presentation by Othithu Tue Jun 02, 2015 10:38 am
» Application of Sorts by crovea Sun May 31, 2015 5:06 pm
» want to contribute by Renzope Sun May 31, 2015 12:58 pm
» Music List Thread (Post New Themes Here) by Oliveriver Thu May 28, 2015 1:06 pm
» Application: English-Spanish translator by Renzope Tue May 26, 2015 1:53 pm
» Want to be promoter or project manager by TheBudderBros Sun May 24, 2015 9:00 pm
» A new round of Forum Revamps! by Oliveriver Wed May 20, 2015 11:32 am
|
|
| Development troubleshooting | |
|
+6benjamin71113 utikawa HariboTer Nimbal SuperLala Seregon 10 posters | |
Author | Message |
---|
utikawa Newcomer
Posts : 7 Reputation : 1 Join date : 2013-12-19 Age : 46 Location : Suzano - SP - Brazil
| Subject: Re: Development troubleshooting Wed 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 | |
| | | benjamin71113
Posts : 2 Reputation : 0 Join date : 2014-01-27
| Subject: OGRE compile errors Tue 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
| |
| | | Nimbal Programming Team lead
Posts : 258 Reputation : 24 Join date : 2013-03-17 Age : 40 Location : Ratingen, Germany
| Subject: Re: Development troubleshooting Tue 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. | |
| | | benjamin71113
Posts : 2 Reputation : 0 Join date : 2014-01-27
| Subject: Re: Development troubleshooting Tue 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. | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sat 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) | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sat 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. | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sat 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? | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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. | |
| | | timlyo Newcomer
Posts : 19 Reputation : 0 Join date : 2013-09-04 Age : 29 Location : England
| Subject: Re: Development troubleshooting Sun 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) | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sun 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? | |
| | | timlyo Newcomer
Posts : 19 Reputation : 0 Join date : 2013-09-04 Age : 29 Location : England
| Subject: Re: Development troubleshooting Sun 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 | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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 | |
| | | timlyo Newcomer
Posts : 19 Reputation : 0 Join date : 2013-09-04 Age : 29 Location : England
| Subject: Re: Development troubleshooting Sun 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 | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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 | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sun 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? | |
| | | timlyo Newcomer
Posts : 19 Reputation : 0 Join date : 2013-09-04 Age : 29 Location : England
| Subject: Re: Development troubleshooting Sun May 18, 2014 2:33 pm | |
| That's just a warning, chances are it'll be fine. The undefined reference is the real problem. | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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. | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sun 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) | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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 | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sun 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) | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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 | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sun 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) | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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. | |
| | | moopli Developer
Posts : 318 Reputation : 56 Join date : 2013-09-30 Age : 29 Location : hanging from the chandelier
| Subject: Re: Development troubleshooting Sun 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) | |
| | | crovea Programming Team lead
Posts : 310 Reputation : 59 Join date : 2013-10-07 Age : 34 Location : Denmark
| Subject: Re: Development troubleshooting Sun 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. | |
| | | Sponsored content
| Subject: Re: Development troubleshooting | |
| |
| | | | Development troubleshooting | |
|
Similar topics | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |