Talk:UnixCompile

From RetroShare
Jump to: navigation, search

Compiling under Debian

I am using Debian (Linux Mint) and it turns out, that installing the package "libxss-dev" is also required. But there seems to be another problem:

/usr/bin/ld: ../../libretroshare/src/lib/libretroshare.a(rsinit.o): undefined reference to symbol 'X509_free@@OPENSSL_0.9.8'
/usr/bin/ld: note: 'X509_free@@OPENSSL_0.9.8' is defined in DSO /usr/lib64/libcrypto.so.0.9.8 so try adding it to the linker command line
/usr/lib64/libcrypto.so.0.9.8: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make: *** [RetroShare] Error 1

I am using Ubuntu 12.10 (beta) and I got following error while building libretroshare (the two components before that seem to me to have built okey)

upnp/UPnPBase.cpp: In statischer Elementfunktion »static int CUPnPControlPoint::Callback(Upnp_EventType, void*, void*)«:
upnp/UPnPBase.cpp:1486:10: Fehler: »UpnpString* {aka s_UpnpString*}« kann nicht nach »const char*« für Argument »2« nach »int UpnpSubscribe(UpnpClient_Handle, const char*, int*, char*)« umgewandelt werden
upnp/UPnPBase.cpp:1496:53: Fehler: keine passende Funktion für Aufruf von »std::map<const std::basic_string<char>, CUPnPService*, std::less<const std::basic_string<char> >, std::allocator<std::pair<const std::basic_string<char>, CUPnPService*> > >::find(UpnpString*&)«
upnp/UPnPBase.cpp:1496:53: Anmerkung: Kandidaten sind:
In file included from /usr/include/c++/4.7/map:61:0,
                 from upnp/UPnPBase.h:27,
                 from upnp/UPnPBase.cpp:29:
/usr/include/c++/4.7/bits/stl_map.h:748:7: Anmerkung: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::find(const key_type&) [with _Key = const std::basic_string<char>; _Tp = CUPnPService*; _Compare = std::less<const std::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::basic_string<char>, CUPnPService*> >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::basic_string<char>, CUPnPService*> >; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = const std::basic_string<char>]

I think the problem might be that ubuntu removed libupnp3 and now only offers libupnp4 and libupnp6 in its repos, thats why I was not able to use the prebuilt deb packages and why I even tried to compile myself..

I encountered the same or a similar error when trying to compile RetroShare (0.5.3c) on my Raspberry Pi. The cause of the problem is that libupnp changed the signature of some methods. See the bug report at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670962, they also have patch for it. Basically, you have to replace each
es_event->PublisherUrl
with
UpnpString_get_String(es_event->PublisherUrl)
--Sentry 09:32, 26 September 2012 (UTC)
Personal tools
Namespaces

Variants
Actions
Navigation
External websites
Wiki
Toolbox