litzlbauer
Topic Author
Posts: 5
Joined: 19 Jan 2015, 23:10

LinkerError OgreBinding on Macos

16 Feb 2015, 16:49

I'm having troubles to compile NoesisGui with the OgreBinding on MacOS. It all comes down to a linker error when deriving from BaseFileSystem or BaseComponent:
Undefined symbols for architecture i386:
  "typeinfo for Noesis::File::BaseFileSystem", referenced from:
      typeinfo for Noesis::Gui::OgreNsGuiFileSystem in OgreNsGuiFileSystem.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
namespace Noesis
{
	namespace Gui
	{
		////////////////////////////////////////////////////////////////////////////////////////////////////
		/// OgreFileSystem
		////////////////////////////////////////////////////////////////////////////////////////////////////
		class OgreNsGuiFileSystem: public File::BaseFileSystem
		{
		public:
			/// Constructor
			OgreNsGuiFileSystem(const NsChar* root);
			
			/// Destructor
			virtual ~OgreNsGuiFileSystem();
			
			/// From IFileSystem
			//@{
			NsBool FileExists(const File::FileId& filename) const;
			Ptr<Core::IStream> OpenRead(const File::FileId& filename) const;
			//@}
			
		private:
			const NsChar* mRoot;
			
		private:
			NS_DECLARE_REFLECTION(OgreNsGuiFileSystem, File::BaseFileSystem)
		};
		
	}
}

To isolate the problem I used the OpenGl Integration sample from github without Ogre. (I also tried it with the NsGuiOgreBinding from github). I'm using NoesisGUI v1.1.14 (r4315). I attached the project.

I have read the post "Crash 0.9.9 - iOS 6.0 - iPad4 - Xcode 4.5" about changing the "NsTypeName" in TypeInfo.h but this didn't help.

Has anybody similar problems deriving from Base classes on MacOs?
Has anybody a Noesis with Ogre running on MacOs?

Thanks!
Wolfgang
Attachments
NsOgreOsX.zip
(150.35 KiB) Downloaded 81 times
 
User avatar
jsantos
Site Admin
Posts: 2904
Joined: 20 Jan 2012, 17:18
Contact:

Re: LinkerError OgreBinding on Macos

16 Feb 2015, 16:58

Is RTTI enabled in your project?
 
User avatar
jsantos
Site Admin
Posts: 2904
Joined: 20 Jan 2012, 17:18
Contact:

Re: LinkerError OgreBinding on Macos

16 Feb 2015, 17:03

I see... you are using v1.1.

In v1.1 noesisGUI is compiled with RTTI disabled. We do this to optimize the binary size because we do not use RTTI at all in our code but it seems that this is problematic in GCC because you need to disable it in ALL binaries that derive from classes corresponding to the binary where RTTI is disabled. So, the solution in v1.1 is that you compile with RTTI disabled.

In v1.2, our binaries are compiled with RTTI enabled (the default setting) to avoid this problem.
 
litzlbauer
Topic Author
Posts: 5
Joined: 19 Jan 2015, 23:10

Re: LinkerError OgreBinding on Macos

16 Feb 2015, 17:58

Thanks for your fast reply. I would love to update to 1.2. But we need to ship pretty soon. Is 1.2 beta stable enough to ship a game? I also noticed that there is no Android and Linux version of the 1.2 version so far. Are these platforms still supported?
 
User avatar
jsantos
Site Admin
Posts: 2904
Joined: 20 Jan 2012, 17:18
Contact:

Re: LinkerError OgreBinding on Macos

16 Feb 2015, 20:41

Yes, they are supported. They will be included in the next beta.

If you want to stay with v1.1 is it an option compiling your project (Ogre included) without RTTI?
 
litzlbauer
Topic Author
Posts: 5
Joined: 19 Jan 2015, 23:10

Re: LinkerError OgreBinding on Macos

20 Feb 2015, 09:59

Unfortunately compiling Ogre without RTTI is not possible. I have 2 more questions:
  • When do you think is 1.2 considered stable?
  • Is 1.2 backward-compatible with 1.1?
 
User avatar
jsantos
Site Admin
Posts: 2904
Joined: 20 Jan 2012, 17:18
Contact:

Re: LinkerError OgreBinding on Macos

21 Feb 2015, 19:55

1.2 Release Candidate 2 was released today. The plan is releasing RC3 next week and the final v1.2 to be released at the GDC.

Although v1.2 is not backward compatible (API and resources) all the changes should be straightforward. Test it and see what happens. If you think the path is too risky, please contact us in private and I will try to provide a v1.1 with RTTI enabled.

Thanks!

Who is online

Users browsing this forum: No registered users and 2 guests