Hi,
While compiling reSIProcate latest release in different environments, I run into several errors. Below are my fixes and they have been verified on Linux and should also work on Windows. Please Visual Studio users help to verify Fix 1 and 2.
1. Error caused by 'unsigned long long' value assignment
1) Error details
This error happens when compiling AppDialog.cxx. gcc 4.3.2 is used(same error with gcc 4.1.2, 4.0.3).
../../resip/dum/ContactInstanceRecord.hxx:15: error: integer constant is too large for 'unsigned long' type
../../rutil/Data.hxx:993: warning: 'resip::invokeDataInit' defined but not used
make[4]: *** [AppDialog.lo] Error 1
ContactInstanceRecord.hxx:15,
static const UInt64 NeverExpire = 0xFFFFFFFFFFFFFFFFUL;
2) Fix
Gcc 4.5 !
or later release does not report this error. While many users may still be using older gcc, suggest fix it.
Use ULL suffix instead of UL. change ContactInstanceRecord.hxx:15,
static const UInt64 NeverExpire = 0xFFFFFFFFFFFFFFFFUL; ->
static const UInt64 NeverExpire = 0xFFFFFFFFFFFFFFFFULL;
Reference links,
http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html
2. Error caused by macro RESIP_DEPRECATED
1) Error details
This error happens when compiling StackThread.cxx. gcc 3.2.2 is used.
In file included from StackThread.cxx:1:
../../resip/stack/StackThread.hxx:28: parse error before `&' token
StackThread.cxx:11: prototype for `
resip::StackThread::StackThread(resip::SipStack&)' does not match any in
class `!
resip::StackThread'
../../resip/stack/StackThread.hxx:24: candidate is:
resip::StackThread::StackThread(const resip::StackThread&)
make[4]: *** [StackThread.lo] Error 1
2) Fix
Using RESIP_DEPRECATED before constructor StackThread(SipStack& stack) gives the compiler a surprise.
Though there is no such compiling error with latest gcc, suggest fix it for backward compatibility. In stack/StackThread.hxx, change line
RESIP_DEPRECATED StackThread(SipStack& stack) ->
StackThread(SipStack& stack) RESIP_DEPRECATED
3. If ssl is enabled, it's more safe for compiling to also add '-lcrypto'(there is only -lssl now)
Can change
configure.ac accordingly.
Thanks and Best Regards,
Xmly