User forums > Using Code::Blocks

Buidling from CVS Error

(1/3) > >>

parasito:
Hi all!!

I'm building codeblocks from CVS in Debian Sid following wiki Compiling Code::Blocks in Linux  instructions.

I have the following error:


--- Code: ---./configmanager.h: In member function 'void ConfigManager::Read(const wxString&, ConfigManagerContainer::SerializableObjectMap*)':
./configmanager.h:198: error: no matching function for call to 'TiXmlHandle::FirstChild(wxString&)'
./tinyxml/tinyxml.h:1458: note: candidates are: TiXmlHandle TiXmlHandle::FirstChild() const
./tinyxml/tinyxml.h:1460: note:                 TiXmlHandle TiXmlHandle::FirstChild(const char*) const
./configmanager.h:202: error: there are no arguments to 'wxBase64Decode' that depend on a template parameter, so a declaration of 'wxBase64Decode' must be available
./configmanager.h:202: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make[2]: *** [sdk.h.gch] Error 1
make[2]: Leaving directory `/home/jose/instalados/codeblocks/src/sdk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jose/instalados/codeblocks/src'
make: *** [all-recursive] Error 1

--- End code ---

Any idea?

Thanks in advance!

Ceniza:
For the first error (configmanager.h:198) you can change the line to:


--- Code: ---if(TiXmlNode *n = ph.FirstChild(key.c_str()).FirstChild(_T("objmap")).Node())
--- End code ---

Or was it mb_str()?

Even though that error shouldn't occur 'cause wxString has operator const char * overloaded. Really weird g++ isn't seeing it.

Now, about wxBase64Decode... no idea. I cannot find it in the wx help file, wx headers or some other place in Code::Blocks source. Thru Google I found it defined in wxhttpengine, but I'm still wondering...

Really guys... where did you get that from?

takeshimiya:
src/sdk/base64.cpp

Anyways, I'd suggest you trying to compile Code::Blocks 1.0 RC2 because HEAD from CVS is experimenting major changes recently, so expect it to break very often.

Ceniza:
Ok, base64.cpp has namespace wxBase64 and functions Encode and Decode, so it should be used wxBase64::Decode, but it's being used as wxBase64Decode! I cannot find how they got rid of the scope operator. Any trick? Strange compiler behavior? A weird C++ rule?

parasito: try replacing in line 202 of configmanager.h wxBase64Decode to wxBase64::Decode.

Anyway, that also explains why grep couldn't find it.

parasito:
I have made both changes, but I still have the same error  :(


--- Code: ---./configmanager.h: In member function 'void ConfigManager::Read(const wxString&, ConfigManagerContainer::SerializableObjectMap*)':
./configmanager.h:198: error: no matching function for call to 'TiXmlHandle::FirstChild(const wxChar*&)'
./tinyxml/tinyxml.h:1458: note: candidates are: TiXmlHandle TiXmlHandle::FirstChild() const
./tinyxml/tinyxml.h:1460: note:                 TiXmlHandle TiXmlHandle::FirstChild(const char*) const
./configmanager.h:202: error: 'wxBase64' has not been declared
./configmanager.h:202: error: there are no arguments to 'Decode' that depend on a template parameter, so a declaration of 'Decode' must be available
./configmanager.h:202: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
make[2]: *** [sdk.h.gch] Error 1
make[2]: Leaving directory `/home/jose/instalados/codeblocks/src/sdk'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jose/instalados/codeblocks/src'
make: *** [all-recursive] Error 1

--- End code ---

Navigation

[0] Message Index

[#] Next page

Go to full version