Jump to content
Mumble forums

Trouble building mumble/murmur from source


sabuffa
 Share

Recommended Posts

When I compile the code I got from

https://github.com/mumble-voip/mumble (zipped version since I can't use Git where I currently am) then

following the instructions on

http://mumble.sourceforge.net/BuildingWindows the

compilation seems to fail when I am building MurmurIce.cpp.

Could it be because I perhaps zipped up the latest dev code

that it doesn\'t compile? I\'m new to working with mumble

source and Ice so I\'m not quite sure as of yet and wouldn\'t

be surprised if the problem is some sort of dependency issue.

 

C:\dev\mumble\src\murmur\Murmur.h(7852) : error C2040: 'ctx' : 'const Ice::Context &' differs in levels of indirection from 'Ice::Int'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2572: 'IceProxy::Murmur::Server::begin_addContextCallback' : redefinition of default parameter : parameter 8

C:\dev\mumble\src\murmur\Murmur.h(7842) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2572: 'IceProxy::Murmur::Server::begin_addContextCallback' : redefinition of default parameter : parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7842) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2535: 'Ice::AsyncResultPtr IceProxy::Murmur::Server::begin_addContextCallback(Ice::Int,const std::string &,const std::string &,const Murmur::ServerContextCallbackPrx &,Ice::Int,const IceInternal::Function &,const IceInternal::Function &,const IceInternal::Function &)' : member function already defined or declared

with

[

S=void (void)

]

C:\dev\mumble\src\murmur\Murmur.h(7842) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2548: 'IceProxy::Murmur::Server::begin_addContextCallback' : missing default parameter for parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2548: 'IceProxy::Murmur::Server::begin_addContextCallback' : missing default parameter for parameter 8

C:\dev\mumble\src\murmur\Murmur.h(7857) : error C2040: 'ctx' : 'const Ice::Context &' differs in levels of indirection from 'Ice::Int'

C:\dev\mumble\src\murmur\Murmur.h(7858) : error C2572: 'IceProxy::Murmur::Server::begin_addContextCallback' : redefinition of default parameter : parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7847) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7858) : error C2535: 'Ice::AsyncResultPtr IceProxy::Murmur::Server::begin_addContextCallback(Ice::Int,const std::string &,const std::string &,const Murmur::ServerContextCallbackPrx &,Ice::Int,const IceInternal::Function &,const IceInternal::Function &)' : member function already defined or declared

with

[

S=void (const Ice::AsyncResultPtr &)

]

C:\dev\mumble\src\murmur\Murmur.h(7847) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7858) : error C2548: 'IceProxy::Murmur::Server::begin_addContextCallback' : missing default parameter for parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7864) : error C2040: 'ctx' : 'const Ice::Context *' differs in levels of indirection from 'Ice::Int'

C:\dev\mumble\src\murmur\Murmur.h(10528) : fatal error C1903: unable to recover from previous error(s); stopping compilation

Murmur.cpp

C:\dev\mumble\src\murmur\Murmur.h(7852) : error C2040: 'ctx' : 'const Ice::Context &' differs in levels of indirection from 'Ice::Int'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2572: 'IceProxy::Murmur::Server::begin_addContextCallback' : redefinition of default parameter : parameter 8

C:\dev\mumble\src\murmur\Murmur.h(7842) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2572: 'IceProxy::Murmur::Server::begin_addContextCallback' : redefinition of default parameter : parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7842) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2535: 'Ice::AsyncResultPtr IceProxy::Murmur::Server::begin_addContextCallback(Ice::Int,const std::string &,const std::string &,const Murmur::ServerContextCallbackPrx &,Ice::Int,const IceInternal::Function &,const IceInternal::Function &,const IceInternal::Function &)' : member function already defined or declared

with

[

S=void (void)

]

C:\dev\mumble\src\murmur\Murmur.h(7842) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2548: 'IceProxy::Murmur::Server::begin_addContextCallback' : missing default parameter for parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7853) : error C2548: 'IceProxy::Murmur::Server::begin_addContextCallback' : missing default parameter for parameter 8

C:\dev\mumble\src\murmur\Murmur.h(7857) : error C2040: 'ctx' : 'const Ice::Context &' differs in levels of indirection from 'Ice::Int'

C:\dev\mumble\src\murmur\Murmur.h(7858) : error C2572: 'IceProxy::Murmur::Server::begin_addContextCallback' : redefinition of default parameter : parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7847) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7858) : error C2535: 'Ice::AsyncResultPtr IceProxy::Murmur::Server::begin_addContextCallback(Ice::Int,const std::string &,const std::string &,const Murmur::ServerContextCallbackPrx &,Ice::Int,const IceInternal::Function &,const IceInternal::Function &)' : member function already defined or declared

with

[

S=void (const Ice::AsyncResultPtr &)

]

C:\dev\mumble\src\murmur\Murmur.h(7847) : see declaration of 'IceProxy::Murmur::Server::begin_addContextCallback'

C:\dev\mumble\src\murmur\Murmur.h(7858) : error C2548: 'IceProxy::Murmur::Server::begin_addContextCallback' : missing default parameter for parameter 7

C:\dev\mumble\src\murmur\Murmur.h(7864) : error C2040: 'ctx' : 'const Ice::Context *' differs in levels of indirection from 'Ice::Int'

C:\dev\mumble\src\murmur\Murmur.h(10528) : fatal error C1903: unable to recover from previous error(s); stopping compilation

NMAKE : fatal error U1077: 'cl' : return code '0x2'

Stop.

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'

Stop.

NMAKE : fatal error U1077: 'cd' : return code '0x2'

Stop.

 

 

I am using the following dependencies, compiling for x86

windows:


- boost 1.53.0

- latest mySQL

- protobuf-2.5.0

- openssl-1.0.1d

- latest stable speex and opus code

- latest ZeroC Ice

- latest nasm (2.10.07)

- latest activePerl 5.16.3 (x86)


Any help would be appreciated.

Link to comment
Share on other sites

After playing around with a bunch of settings I was never able to get it compile with the latest version of ICE (3.5.0) as specified in the building for windows instructions. The main issues with the 3.5.0 version of ICE was that in Murmur.ice line 597 there is the following:

 

void addContextCallback(int session, string action, string text, ServerContextCallback *cb, int ctx) throws ServerBootedException, InvalidCallbackException, InvalidSecretException;

 

Ice 3.5.0 auto-generates a function that has another variable named ctx so it fails during compilation. Changing it to:

 

void addContextCallback(int session, string action, string text, ServerContextCallback *cb, int ct) throws ServerBootedException, InvalidCallbackException, InvalidSecretException;

 

fixed that problem. Next was the problem that there is no vc100 directory in ICE 3.5.0, only vc110. If I remember correctly, vc110 is for visual studio 2012, although on the Ice website they say that 3.5.0 is supposed to work with visual studio 2010 SP1, which I had installed. In any case, by uninstalling version 3.5.0 and instead installing version 3.4.2 (which is what the 1.2.4 rc is using) I was able to successfully build without issue. I suggest modifying the BuildingWindows page to note this since it currently says to get the latest one.

Link to comment
Share on other sites

  • 2 weeks later...
  • Administrators

Ice 3.5 is pretty new, and I’m not sure others actually tried to compile Mumble with Ice 3.5 up to now. I certainly did not. :)


Thank you for reporting back, I changed the wiki page to not say "latest version of ice".

Link to comment
Share on other sites

  • Administrators

For now the simplest workaround is using gcc 4.6 to compile mumble. Ice <3.5, as you noted, won't properly compile with gcc 4.7. For that you have to have gcc 4.6 installed and explicitely tell qmake to use it:

qmake-qt4 CONFIG-=sse2 QMAKE_CC=gcc-4.6 QMAKE_CXX=g++-4.6 QMAKE_LINK=g++-4.6 -recursive
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...