Code Monkey home page Code Monkey logo

ohnet's Introduction

ohNet library
------------
ohNet is a library for the discovery, monitoring, manipulation and implementation
of UPnP devices, generalized to be extensible to other similar protocols.

Prerequisites
-------------
On Windows:
    Microsoft Visual Studio
    (Express versions are okay. Versions earlier than 2010 will have to edit Types.h to
    include content equivalent to stdint.h.)
    .NET 6.0+ (optional, required for C# bindings and all changes to service descriptions)
    Java (optional, required for building Java bindings)

On Linux:
    .NET 6.0+ (optional, required for changes to service descriptions)
    Java (optional, required for building Java bindings)

On Mac:
    XCode
    .NET 6.0+ (optional, required for changes to service descriptions)

Building
--------
    make

Note: On Windows, ensure you are in a visual studio command prompt or have otherwise set Visual
Studio's environment variables.

Note: Windows & Mac assumes that 'dotnet' is in your PATH. Linux assumes it's at '~/.dotnet/'

If you have a .NET runtime available and want to regenerate makefiles, proxies or providers, run
    make generate-makefiles uset4=yes
    make GenAll uset4=yes

Installing
----------
See "INSTALL.txt".

Directories
-----------
Build/
    Generated during the build process. Build artefacts go here.

Build/Obj/Windows/
Build/Obj/Posix/
    Binaries and shared libraries are built to here during a build.

Build/Tools/
    Binaries that are required by the build process are built to here.

Build/Include/OpenHome
    Header files needed by users of the library are copied here during the build.

Build/Include/OpenHome/Net/C
    Header files for C language bindings.

Build/Include/OpenHome/Net/Cpp
    Header files for C++ language bindings.

Build/Include/OpenHome/Net/Core
Build/Include/OpenHome/Net/Private
    Not intended for external use.

OpenHome
    Base source code.

OpenHome/Net
    Source code shared by Control Point and Device stacks.

OpenHome/Net/ControlPoint
    Control Point stack.

OpenHome/Net/Device
    Device stack.

OpenHome/Net/Bindings
    Language bindings (for C++, C#, Java, JavaScript & C).


Make targets
------------
all
    This is the default target. It (should) build everything.

ohNet.net.dll
    ohNet as a dll/shared object plus C# bindings

ohNetJavaAll
    ohNet as a dll/shared object plus Java bindings

generate-makefiles
    This regenerates the makefiles in Generated/ that are derived from the
    service descriptions. GNU make will detect these changes automatically,
    but Microsoft's nmake doesn't handle this, so Windows users will need
    to use this target when the service descriptions or T4 templates for
    the makefiles have been changed.

install
    See "INSTALL.txt".

uninstall
    See "INSTALL.txt".

clean
    Removes files from Build/Obj/$platform/ and Build/Include/

mostlyclean
    Also removes the auto-generated makefiles from Generated/

maintainer-clean
    Also removes Build/Tools/
    (Should - but doesn't yet - remove auto-generated source files too.)

ohnet's People

Contributors

blondejamtart avatar chrischeung avatar grahamdarnell avatar gregghamilton-linn avatar hahnj21 avatar henrikm avatar lross-linn avatar mcleodia avatar novac avatar projectgoav avatar rndtest avatar rockfather avatar simonchisholm avatar stevenspencer avatar volumedigital avatar weeble avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ohnet's Issues

Build issues on Windows 10

I'm trying to build ohNet from the master current at the time of raising this issue. On Windows 10, with the ultimate aim of getting Android libraries for an app I'm developing. I've hit a few of problems with the build. This is the first time I've tried to build ohNet, so I apologise if these are caused by not having a correct build environment.

I get a python error. I have Python 3.8 and I assuming this is because print changed to a function and I can bracket 'print' calls in bundle-binaries.py to fix this.

python bundle_binaries.py --system Windows --architecture x86 --configuration Release
File "bundle_binaries.py", line 124
print "Too many arguments."

Trying to build java bindings on Windows 10 using jdk11.02 I get errors. I removed -Xbootclasspath entries from javac commands to get the build through.

        "C:\Program Files\Java\jdk-11.0.2\bin\javac.exe" -classpath OpenHome\Net\Bindings\Java\ -d Build\Obj\Windows\Release\ -Xbootclasspath:"C:\Program Files\Java\jdk-11.0.2/jre/lib/rt.jar" -target 1.6 -source 1.6 OpenHome\Net\Bindings\Java\org/openhome/net/controlpoint/Argument.java
warning: [options] source value 6 is obsolete and will be removed in a future release
warning: [options] target value 1.6 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warnings
Fatal Error: Unable to find package java.lang in classpath or bootclasspath
NMAKE : fatal error U1077: '"C:\Program Files\Java\jdk-11.0.2\bin\javac.exe"' : return code '0x3'
Stop.

Building the ohNetAndroidNative target I get the following error. I'm assuming that in this case cp should be copy. I'm not sure where or how best to fix this particular issue.

[x86] Compile        : ohNetJni <= ResourceWriter.c
[x86] Compile        : ohNetJni <= SubnetList.c
[x86] SharedLibrary  : libohNetJni.so
[x86] Install        : libohNetJni.so => libs/x86/libohNetJni.so
make: Leaving directory 'D:/ohNet-master/OpenHome/Net/Bindings/Android/jni'
        Scripts\mkdir.bat Build\Obj\Windows\Release\
        Scripts\mkdir.bat Build\Obj\Windows\Release\arm64-v8a
        Scripts\mkdir.bat Build\Obj\Windows\Release\armeabi-v7a
        Scripts\mkdir.bat Build\Obj\Windows\Release\x86
        Scripts\mkdir.bat Build\Obj\Windows\Release\x86_64
        cp OpenHome/Net/Bindings/Android/libs//arm64-v8a/libohNet.so Build\Obj\Windows\Release\arm64-v8a
'cp' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'cp' : return code '0x1'
Stop.

Incorrect CACHE-CONTROL header value

Currently in Alives messages there is CACHE-CONTROL values as:
max-age = value

According to UCTT there shouldn't be spaces between max-age,equal character and value

ERROR M-SEARCH response: extra characters in max-age, ex. spaces next to equal character
ERROR Validation result of CACHE-CONTROL header: FAILED

It's easy to fix. In OpenHome/Net/Ssdp.cpp remove stream.Write(Ascii::kSp); in lines 224 and 226.

I didn't look if there is something in tests.

Contact | Security Issue

Hi OpenHome Net team,

I couldn't find anywhere an email address to report security issues to, nor did I find any of your private email addresses.
Can you please contact me back - [email protected]

Thanks,
Hagai

error: size of array ‘assertC’ is negative

When building ohnet for Motorola 68040 the compilation fails with:

Build/Include/OpenHome/Net/Private/mDNSEmbeddedAPI.h:2931:83: error: size of array ‘assertC’ is negative
  char assertC[(sizeof(CacheRecord  )    ==  sizeof(CacheGroup)          ) ? 1 : -1];

I understand, that this is a compiler check. But not to handle this. Does it mean the toolchain cannot be used/needs a fix to compile ohnet?

make install failure on raspberryPI

After successful make, make install fails


CROSS_COMPILE: 
Machine reported by compiler is: arm-linux-gnueabihf
Machine reported by uname is: Linux
Building for system Linux and architecture armhf
mkdir -p Generated
o Generated/Devices.mak OpenHome/Net/T4/Templates/DvUpnpMakeDevices.tt -a xml:OpenHome/Net/Service/Services.xml
make: o: commande introuvable
Common.mak:1392: recipe for target 'Generated/Devices.mak' failed
make: [Generated/Devices.mak] Error 127 (ignorée)
Attention: a makefile has been re-generated.
mkdir -p Generated
o Generated/Proxies.mak OpenHome/Net/T4/Templates/CpUpnpMakeProxies.tt -a xml:OpenHome/Net/Service/Services.xml
make: o: commande introuvable
Common.mak:1387: recipe for target 'Generated/Proxies.mak' failed
make: [Generated/Proxies.mak] Error 127 (ignorée)
Attention: a makefile has been re-generated.
make: *** No rule to make target 'tt', needed by 'install-pkgconf'. Art.

Issue building with VS 2017

Fails to build ohNet\OpenHome\Net\Device\Bonjour\mDNSShared\dnssd_clientshim.c due to Visual's C compiler not allowing mixed code and variables. Moving definition of mStatus err and uint16_t port to top of function seems to resolve issue.

Build error with GCC 7

Building ohNet with GCC 7 fails:

OpenHome/TestFramework/OptionParser.cpp: In member function ‘void OpenHome::TestFramework::OptionParser::SetUsage(const TChar*)’:
OpenHome/TestFramework/OptionParser.cpp:285:30: error: argument 1 null where non-null expected [-Werror=nonnull]
     iUsage = new TChar[strlen(iUsage)];
                        ~~~~~~^~~~~~~~

Looking at the code:

    delete iUsage;
    iUsage = NULL;
    iUsage = new TChar[strlen(iUsage)];

Add posibility to return error code in actions

I'm using C++ version of library and currently there is no way to return errorCode with errorDescription from action method which extends generated Provider.

The solution could be add to DvInvocationStd method invocationReportError(TUint aCode, const std::string aDescription) which call wrapped IDviInvocation method InvocationReportError.

The other solution could be add some type of Exception with TUint and std::string constructor which handled in this methods just return passed errorCode with Description.

Java Bindings for Mac OS X

Hello,

i am having trouble obtaining the java bindings for mac os x. In the binary releases the file libohNetJni.dylib isn't included and if i try to build it myself i always get the error message:
"make: *** No rule to make target tt', needed byinstall-pkgconf'. Stop."

Missing method Select in assembly ohNet.net.dll

Hi, I wrote a UPnP control point with your stack.
The project works on Windows(x64), Ubuntu(x64). I compile my .NET project with a x86 target.

Here's the problem: I can't get it to run under Debian-ARM on my RaspberryPi :(

I use Mono version 2.10.8.
The program finds devices and if it find a mediarenderer it should initialize a CpProxyUpnpOrgAVTransport1.
But when a UPnP media renderer is found the program exits with an exception as you can see bellow!

You have any idea what's going on here?
The shared object file I use is compiled with this ARM computer!

734888.00.0001 18:12:34 [Debug] - Found
    udn = 44b6e11a-0d37-1ada-ffff-ffffb5c11e86
    location = http://192.168.107.44:42037/dev/44b6e11a-0000-1ada-ffff-ffffb5c11e86/desc.xml
    name = BubbleUPnP (GT-P3110)

Missing method Select in assembly /opt/cloudmusic2upnp/ohNet.net.dll, type System.Linq.Enumerable

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
  at OpenHome.Net.ControlPoint.Proxies.CpProxyUpnpOrgAVTransport1..ctor (OpenHome.Net.ControlPoint.CpDevice aDevice) [0x00000] in <filename unknown>:0 
  at cloudmusic2upnp.DeviceController.UPnPDevice..ctor (OpenHome.Net.ControlPoint.CpDevice device, System.Xml.XmlDocument xmlDeviceDescr) [0x00000] in <filename unknown>:0 
  at cloudmusic2upnp.DeviceController.UPnP.DeviceAdded (OpenHome.Net.ControlPoint.CpDeviceList aList, OpenHome.Net.ControlPoint.CpDevice aDevice) [0x00000] in <filename unknown>:0 
  at OpenHome.Net.ControlPoint.CpDeviceList.CallListChangedDelegate (OpenHome.Net.ControlPoint.ChangeHandler aDelegate, OpenHome.Net.ControlPoint.CpDeviceList aList, OpenHome.Net.ControlPoint.CpDevice aDevice) [0x00000] in <filename unknown>:0 
  at OpenHome.Net.ControlPoint.CpDeviceList.Added (IntPtr aPtr, IntPtr aHandle) [0x00000] in <filename unknown>:0 
  at (wrapper native-to-managed) OpenHome.Net.ControlPoint.CpDeviceList:Added (intptr,intptr)

correction to successfully build for FreeBSD

In my recent tests, I found two small corrections which had to be done to successfully build for FreeBSD:

/usr/bin/sed -i -- 's/-Werror//g' Makefile
/usr/bin/sed -i -- '1320s/$/ && !defined(PLATFORM_FREEBSD)/' Os/Posix/Os.c

Compiling For libc++ iOS

I am working on a iOS project in Swift. I have "Make" the library but compiling it wit "libc++" as "libstdc++" is deprecated.

The line of code i have changed is 169:
platform_cflags = -I$(sdkroot)/usr/include/ -miphoneos-version-min=2.2 -pipe -no-cpp-precomp -isysroot $(sdkroot) -DPLATFORM_MACOSX_GNU -DPLATFORM_IOS

for

platform_cflags = -I$(sdkroot)/usr/include/ -miphoneos-version-min=7.0 -pipe -no-cpp-precomp -isysroot $(sdkroot) -DPLATFORM_MACOSX_GNU -DPLATFORM_IOS

the output for checking that it is libc++ shows:
nm libohNetCore.a | c++filt | grep string | head -1 0000000000000110 T OpenHome::Net::CpDeviceCpp::GetAttribute(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const

After setting my xcode I get the following error:
Undefined symbols for architecture arm64: "___cxa_guard_abort", referenced from: OpenHome::Net::OutputProcessorUpnp::ProcessBool(OpenHome::Brx const&, bool&) in libohNetCore.a(ProtocolUpnp.o) OpenHome::Net::DviSubscription::Log(OpenHome::IWriter&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::PropertyWriter::WriteVariableStart(OpenHome::IWriter&, OpenHome::Brx const&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::PropertyWriter::WriteVariableEnd(OpenHome::IWriter&, OpenHome::Brx const&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::DviProtocolUpnp::GetAttribute(char const*, char const**) const in libohNetCore.a(DviProtocolUpnp.o) OpenHome::Net::DviProtocolUpnpServiceXmlWriter::GetRelatedVariableName(OpenHome::Bwh&, OpenHome::Brx const&, OpenHome::Brx const&) in libohNetCore.a(DviProtocolUpnp.o) "___cxa_get_exception_ptr", referenced from: OpenHome::Net::InvocationUpnp::WriteRequest(OpenHome::Uri const&) in libohNetCore.a(ProtocolUpnp.o) OpenHome::Net::OutputProcessorUpnp::ProcessBool(OpenHome::Brx const&, bool&) in libohNetCore.a(ProtocolUpnp.o) OpenHome::Net::MdnsPlatform::Listen() in libohNetCore.a(MdnsPlatform.o) OpenHome::Net::HeaderSoapAction::Process(OpenHome::Brx const&) in libohNetCore.a(DviServerUpnp.o) OpenHome::Net::HeaderCallback::Process(OpenHome::Brx const&) in libohNetCore.a(DviServerUpnp.o) OpenHome::Net::DviSessionUpnp::InvocationReadBool(char const*) in libohNetCore.a(DviServerUpnp.o) "std::out_of_range::~out_of_range()", referenced from: std::__1::map<OpenHome::Brn, unsigned int, OpenHome::BufferCmp, std::__1::allocator<std::__1::pair<OpenHome::Brn const, unsigned int> > >::at(OpenHome::Brn const&) in libohNetCore.a(ShellCommandDebug.o) "std::length_error::~length_error()", referenced from: std::__1::__split_buffer<OpenHome::MListener*, std::__1::allocator<OpenHome::MListener*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::MListener*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::ISuspendObserver*, std::__1::allocator<OpenHome::ISuspendObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::ISuspendObserver*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::IResumeObserver*, std::__1::allocator<OpenHome::IResumeObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::IResumeObserver*>&) in libohNetCore.a(Env.o) std::__1::unique_ptr<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*> > > > std::__1::__tree<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::__map_value_compare<OpenHome::IStackObject*, std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::less<OpenHome::IStackObject*>, true>, std::__1::allocator<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*> > >::__construct_node<std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*> >(std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*>&&) in libohNetCore.a(Env.o) std::__1::__split_buffer<char const*, std::__1::allocator<char const*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<char const*>&) in libohNetCore.a(OhNet.o) std::__1::__split_buffer<OpenHome::Net::Argument*, std::__1::allocator<OpenHome::Net::Argument*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::Argument*>&) in libohNetCore.a(CpiService.o) std::__1::__split_buffer<OpenHome::Net::DvAction, std::__1::allocator<OpenHome::Net::DvAction>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::DvAction>&) in libohNetCore.a(DviService.o) ... "typeinfo for std::bad_alloc", referenced from: GCC_except_table0 in libohNetCore.a(OhNetCCombined.o) OpenHome::Environment::Construct(OpenHome::FunctorMsg&) in libohNetCore.a(Env.o) OpenHome::Semaphore::Semaphore(char const*, unsigned int) in libohNetCore.a(Thread.o) OpenHome::Mutex::Mutex(char const*) in libohNetCore.a(Thread.o) "___cxa_guard_acquire", referenced from: OpenHome::Net::OutputProcessorUpnp::ProcessBool(OpenHome::Brx const&, bool&) in libohNetCore.a(ProtocolUpnp.o) OpenHome::Net::DviSubscription::Log(OpenHome::IWriter&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::PropertyWriter::WriteVariableStart(OpenHome::IWriter&, OpenHome::Brx const&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::PropertyWriter::WriteVariableEnd(OpenHome::IWriter&, OpenHome::Brx const&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::DviProtocolUpnp::GetAttribute(char const*, char const**) const in libohNetCore.a(DviProtocolUpnp.o) OpenHome::Net::DviProtocolUpnpServiceXmlWriter::GetRelatedVariableName(OpenHome::Bwh&, OpenHome::Brx const&, OpenHome::Brx const&) in libohNetCore.a(DviProtocolUpnp.o) "std::bad_alloc::~bad_alloc()", referenced from: OpenHome::Environment::Construct(OpenHome::FunctorMsg&) in libohNetCore.a(Env.o) OpenHome::Semaphore::Semaphore(char const*, unsigned int) in libohNetCore.a(Thread.o) OpenHome::Mutex::Mutex(char const*) in libohNetCore.a(Thread.o) "vtable for __cxxabiv1::__vmi_class_type_info", referenced from: typeinfo for OpenHome::Net::DviDeviceC in libohNetCore.a(DvDeviceC.o) typeinfo for OpenHome::Bwx in libohNetCore.a(Env.o) typeinfo for OpenHome::NetworkAdapter in libohNetCore.a(OhNet.o) typeinfo for OpenHome::Net::DefaultAsyncHandler in libohNetCore.a(OhNet.o) typeinfo for OpenHome::Brv in libohNetCore.a(Buffer.o) typeinfo for OpenHome::Net::CpiService in libohNetCore.a(CpiService.o) typeinfo for OpenHome::Net::DvProvider in libohNetCore.a(DvProvider.o) ... NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "operator new(unsigned long)", referenced from: _CpDeviceListCreateUpnpAll in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpRoot in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpUuid in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpDeviceType in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpServiceType in libohNetCore.a(CpDeviceUpnpC.o) CpProxyAvOpenhomeOrgCredentials1C::CpProxyAvOpenhomeOrgCredentials1C(void*) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::BeginSet(OpenHome::Brx const&, OpenHome::Brx const&, OpenHome::Brx const&, OpenHome::Net::FunctorAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... "typeinfo for std::exception", referenced from: GCC_except_table24 in libohNetCore.a(DvDeviceC.o) GCC_except_table26 in libohNetCore.a(DvDeviceC.o) GCC_except_table28 in libohNetCore.a(DvDeviceC.o) GCC_except_table31 in libohNetCore.a(DvDeviceC.o) GCC_except_table32 in libohNetCore.a(DvDeviceC.o) GCC_except_table33 in libohNetCore.a(DvDeviceC.o) GCC_except_table35 in libohNetCore.a(DvDeviceC.o) ... "vtable for __cxxabiv1::__si_class_type_info", referenced from: typeinfo for OpenHome::Brh in libohNetCore.a(CpDeviceC.o) typeinfo for SyncSetAvOpenhomeOrgCredentials1C in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for SyncClearAvOpenhomeOrgCredentials1C in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for SyncSetEnabledAvOpenhomeOrgCredentials1C in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for SyncGetAvOpenhomeOrgCredentials1C in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for SyncLoginAvOpenhomeOrgCredentials1C in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for SyncReLoginAvOpenhomeOrgCredentials1C in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from: void std::__1::vector<OpenHome::MListener*, std::__1::allocator<OpenHome::MListener*> >::__push_back_slow_path<OpenHome::MListener* const&>(OpenHome::MListener* const&&&) in libohNetCore.a(Env.o) void std::__1::vector<OpenHome::ISuspendObserver*, std::__1::allocator<OpenHome::ISuspendObserver*> >::__push_back_slow_path<OpenHome::ISuspendObserver*>(OpenHome::ISuspendObserver*&&) in libohNetCore.a(Env.o) void std::__1::vector<OpenHome::IResumeObserver*, std::__1::allocator<OpenHome::IResumeObserver*> >::__push_back_slow_path<OpenHome::IResumeObserver*>(OpenHome::IResumeObserver*&&) in libohNetCore.a(Env.o) void std::__1::vector<char const*, std::__1::allocator<char const*> >::__push_back_slow_path<char const* const&>(char const* const&&&) in libohNetCore.a(OhNet.o) void std::__1::vector<OpenHome::Net::Argument*, std::__1::allocator<OpenHome::Net::Argument*> >::__push_back_slow_path<OpenHome::Net::Argument* const&>(OpenHome::Net::Argument* const&&&) in libohNetCore.a(CpiService.o) void std::__1::vector<OpenHome::Net::DvAction, std::__1::allocator<OpenHome::Net::DvAction> >::__push_back_slow_path<OpenHome::Net::DvAction const&>(OpenHome::Net::DvAction const&&&) in libohNetCore.a(DviService.o) void std::__1::vector<OpenHome::Net::Property*, std::__1::allocator<OpenHome::Net::Property*> >::__push_back_slow_path<OpenHome::Net::Property* const&>(OpenHome::Net::Property* const&&&) in libohNetCore.a(DviService.o) ... "___cxa_free_exception", referenced from: CpProxyAvOpenhomeOrgCredentials1C::EndSet(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndClear(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndSetEnabled(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndGet(OpenHome::Net::IAsync&, OpenHome::Brh&, OpenHome::Brh&, bool&, OpenHome::Brh&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndLogin(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndReLogin(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndGetIds(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... "operator delete[](void*)", referenced from: CpProxyAvOpenhomeOrgPlaylist1C::CpProxyAvOpenhomeOrgPlaylist1C(void*) in libohNetProxies.a(CpAvOpenhomeOrgPlaylist1C.o) CpProxyAvOpenhomeOrgRadio1C::CpProxyAvOpenhomeOrgRadio1C(void*) in libohNetProxies.a(CpAvOpenhomeOrgRadio1C.o) CpProxyEntotemComRecordlist1C::CpProxyEntotemComRecordlist1C(void*) in libohNetProxies.a(CpEntotemComRecordlist1C.o) CpProxyUpnpOrgAVTransport1C::CpProxyUpnpOrgAVTransport1C(void*) in libohNetProxies.a(CpUpnpOrgAVTransport1C.o) CpProxyUpnpOrgConnectionManager1C::CpProxyUpnpOrgConnectionManager1C(void*) in libohNetProxies.a(CpUpnpOrgConnectionManager1C.o) DvProviderUpnpOrgConnectionManager1C::EnableActionPrepareForConnection(int (*)(void*, IDvInvocationC*, void*, char const*, char const*, int, char const*, int*, int*, int*), void*) in libohNetDevices.a(DvUpnpOrgConnectionManager1C.o) DvProviderUpnpOrgConnectionManager1C::EnableActionGetCurrentConnectionInfo(int (*)(void*, IDvInvocationC*, void*, int, int*, int*, char**, char**, int*, char**, char**), void*) in libohNetDevices.a(DvUpnpOrgConnectionManager1C.o) ... "std::logic_error::logic_error(char const*)", referenced from: std::__1::__split_buffer<OpenHome::MListener*, std::__1::allocator<OpenHome::MListener*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::MListener*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::ISuspendObserver*, std::__1::allocator<OpenHome::ISuspendObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::ISuspendObserver*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::IResumeObserver*, std::__1::allocator<OpenHome::IResumeObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::IResumeObserver*>&) in libohNetCore.a(Env.o) std::__1::unique_ptr<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*> > > > std::__1::__tree<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::__map_value_compare<OpenHome::IStackObject*, std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::less<OpenHome::IStackObject*>, true>, std::__1::allocator<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*> > >::__construct_node<std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*> >(std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*>&&) in libohNetCore.a(Env.o) std::__1::__split_buffer<char const*, std::__1::allocator<char const*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<char const*>&) in libohNetCore.a(OhNet.o) std::__1::__split_buffer<OpenHome::Net::Argument*, std::__1::allocator<OpenHome::Net::Argument*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::Argument*>&) in libohNetCore.a(CpiService.o) std::__1::__split_buffer<OpenHome::Net::DvAction, std::__1::allocator<OpenHome::Net::DvAction>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::DvAction>&) in libohNetCore.a(DviService.o) ... "vtable for __cxxabiv1::__class_type_info", referenced from: typeinfo for OpenHome::Exception in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for OpenHome::Brx in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) typeinfo for OpenHome::Net::CpProxyC in libohNetCore.a(CpProxyC.o) typeinfo for OpenHome::Net::IResourceManager in libohNetCore.a(DvDeviceC.o) typeinfo for OpenHome::IStackObject in libohNetCore.a(OhNet.o) typeinfo for OpenHome::Net::IAsyncOutput in libohNetCore.a(OhNet.o) typeinfo for OpenHome::Net::Service in libohNetCore.a(CpiService.o) ... NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "___cxa_end_catch", referenced from: _CpProxyAvOpenhomeOrgCredentials1SyncSet in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1EndSet in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1SyncClear in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1EndClear in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1SyncSetEnabled in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1EndSetEnabled in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1SyncGet in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... "___cxa_begin_catch", referenced from: ___clang_call_terminate in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1SyncSet in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1EndSet in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1SyncClear in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1EndClear in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1SyncSetEnabled in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) _CpProxyAvOpenhomeOrgCredentials1EndSetEnabled in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... "std::terminate()", referenced from: ___clang_call_terminate in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) "std::bad_alloc::bad_alloc()", referenced from: OpenHome::Environment::Construct(OpenHome::FunctorMsg&) in libohNetCore.a(Env.o) OpenHome::Semaphore::Semaphore(char const*, unsigned int) in libohNetCore.a(Thread.o) OpenHome::Mutex::Mutex(char const*) in libohNetCore.a(Thread.o) "___cxa_allocate_exception", referenced from: CpProxyAvOpenhomeOrgCredentials1C::EndSet(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndClear(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndSetEnabled(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndGet(OpenHome::Net::IAsync&, OpenHome::Brh&, OpenHome::Brh&, bool&, OpenHome::Brh&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndLogin(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndReLogin(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndGetIds(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... "typeinfo for std::out_of_range", referenced from: std::__1::map<OpenHome::Brn, unsigned int, OpenHome::BufferCmp, std::__1::allocator<std::__1::pair<OpenHome::Brn const, unsigned int> > >::at(OpenHome::Brn const&) in libohNetCore.a(ShellCommandDebug.o) GCC_except_table16 in libohNetCore.a(ShellCommandDebug.o) "typeinfo for std::length_error", referenced from: std::__1::__split_buffer<OpenHome::MListener*, std::__1::allocator<OpenHome::MListener*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::MListener*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::ISuspendObserver*, std::__1::allocator<OpenHome::ISuspendObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::ISuspendObserver*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::IResumeObserver*, std::__1::allocator<OpenHome::IResumeObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::IResumeObserver*>&) in libohNetCore.a(Env.o) std::__1::unique_ptr<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*> > > > std::__1::__tree<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::__map_value_compare<OpenHome::IStackObject*, std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::less<OpenHome::IStackObject*>, true>, std::__1::allocator<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*> > >::__construct_node<std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*> >(std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*>&&) in libohNetCore.a(Env.o) std::__1::__split_buffer<char const*, std::__1::allocator<char const*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<char const*>&) in libohNetCore.a(OhNet.o) std::__1::__split_buffer<OpenHome::Net::Argument*, std::__1::allocator<OpenHome::Net::Argument*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::Argument*>&) in libohNetCore.a(CpiService.o) std::__1::__split_buffer<OpenHome::Net::DvAction, std::__1::allocator<OpenHome::Net::DvAction>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::DvAction>&) in libohNetCore.a(DviService.o) ... "___cxa_throw", referenced from: CpProxyAvOpenhomeOrgCredentials1C::EndSet(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndClear(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndSetEnabled(OpenHome::Net::IAsync&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndGet(OpenHome::Net::IAsync&, OpenHome::Brh&, OpenHome::Brh&, bool&, OpenHome::Brh&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndLogin(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndReLogin(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) CpProxyAvOpenhomeOrgCredentials1C::EndGetIds(OpenHome::Net::IAsync&, OpenHome::Brh&) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... "___gxx_personality_v0", referenced from: _CpDeviceCGetUdn in libohNetCore.a(CpDeviceC.o) _CpDeviceCGetAttribute in libohNetCore.a(CpDeviceC.o) OpenHome::Brn::Brn(OpenHome::Brx const&) in libohNetCore.a(CpDeviceC.o) OpenHome::Brv::Brv() in libohNetCore.a(CpDeviceC.o) _CpDeviceListCreateUpnpAll in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpRoot in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpUuid in libohNetCore.a(CpDeviceUpnpC.o) ... "operator new[](unsigned long)", referenced from: CpProxyAvOpenhomeOrgPlaylist1C::CpProxyAvOpenhomeOrgPlaylist1C(void*) in libohNetProxies.a(CpAvOpenhomeOrgPlaylist1C.o) CpProxyAvOpenhomeOrgRadio1C::CpProxyAvOpenhomeOrgRadio1C(void*) in libohNetProxies.a(CpAvOpenhomeOrgRadio1C.o) CpProxyEntotemComRecordlist1C::CpProxyEntotemComRecordlist1C(void*) in libohNetProxies.a(CpEntotemComRecordlist1C.o) CpProxyUpnpOrgAVTransport1C::CpProxyUpnpOrgAVTransport1C(void*) in libohNetProxies.a(CpUpnpOrgAVTransport1C.o) CpProxyUpnpOrgConnectionManager1C::CpProxyUpnpOrgConnectionManager1C(void*) in libohNetProxies.a(CpUpnpOrgConnectionManager1C.o) DvProviderUpnpOrgConnectionManager1C::EnableActionPrepareForConnection(int (*)(void*, IDvInvocationC*, void*, char const*, char const*, int, char const*, int*, int*, int*), void*) in libohNetDevices.a(DvUpnpOrgConnectionManager1C.o) DvProviderUpnpOrgConnectionManager1C::EnableActionGetCurrentConnectionInfo(int (*)(void*, IDvInvocationC*, void*, int, int*, int*, char**, char**, int*, char**, char**), void*) in libohNetDevices.a(DvUpnpOrgConnectionManager1C.o) ... "___cxa_pure_virtual", referenced from: vtable for OpenHome::Brx in libohNetCore.a(CpDeviceC.o) vtable for OpenHome::Brx in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) vtable for OpenHome::Brx in libohNetProxies.a(CpAvOpenhomeOrgInfo1C.o) vtable for OpenHome::Brx in libohNetProxies.a(CpAvOpenhomeOrgPlaylist1C.o) vtable for OpenHome::Brx in libohNetProxies.a(CpAvOpenhomeOrgProduct1C.o) vtable for OpenHome::Brx in libohNetProxies.a(CpAvOpenhomeOrgRadio1C.o) vtable for OpenHome::Brx in libohNetProxies.a(CpEntotemComExtSource1C.o) ... "vtable for std::out_of_range", referenced from: std::__1::map<OpenHome::Brn, unsigned int, OpenHome::BufferCmp, std::__1::allocator<std::__1::pair<OpenHome::Brn const, unsigned int> > >::at(OpenHome::Brn const&) in libohNetCore.a(ShellCommandDebug.o) NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "___cxa_rethrow", referenced from: OpenHome::Net::DviService::Invoke(OpenHome::Net::IDviInvocation&, OpenHome::Brx const&, bool) in libohNetCore.a(DviService.o) OpenHome::Net::CpProxy::EventUpdateEnd() in libohNetCore.a(CpProxy.o) OpenHome::Net::SyncProxyAction::Completed(OpenHome::Net::IAsync&) in libohNetCore.a(AsyncPrivate.o) OpenHome::Net::CpiSubscription::RunInSubscriber() in libohNetCore.a(CpiSubscription.o) OpenHome::Net::CpiSubscription::DoSubscribe() in libohNetCore.a(CpiSubscription.o) OpenHome::Net::CpiSubscription::DoRenew() in libohNetCore.a(CpiSubscription.o) OpenHome::Socket::Close() in libohNetCore.a(Network.o) ... "vtable for std::length_error", referenced from: std::__1::__split_buffer<OpenHome::MListener*, std::__1::allocator<OpenHome::MListener*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::MListener*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::ISuspendObserver*, std::__1::allocator<OpenHome::ISuspendObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::ISuspendObserver*>&) in libohNetCore.a(Env.o) std::__1::__split_buffer<OpenHome::IResumeObserver*, std::__1::allocator<OpenHome::IResumeObserver*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::IResumeObserver*>&) in libohNetCore.a(Env.o) std::__1::unique_ptr<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, void*> > > > std::__1::__tree<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::__map_value_compare<OpenHome::IStackObject*, std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*>, std::__1::less<OpenHome::IStackObject*>, true>, std::__1::allocator<std::__1::__value_type<OpenHome::IStackObject*, OpenHome::IStackObject*> > >::__construct_node<std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*> >(std::__1::pair<OpenHome::IStackObject*, OpenHome::IStackObject*>&&) in libohNetCore.a(Env.o) std::__1::__split_buffer<char const*, std::__1::allocator<char const*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<char const*>&) in libohNetCore.a(OhNet.o) std::__1::__split_buffer<OpenHome::Net::Argument*, std::__1::allocator<OpenHome::Net::Argument*>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::Argument*>&) in libohNetCore.a(CpiService.o) std::__1::__split_buffer<OpenHome::Net::DvAction, std::__1::allocator<OpenHome::Net::DvAction>&>::__split_buffer(unsigned long, unsigned long, std::__1::allocator<OpenHome::Net::DvAction>&) in libohNetCore.a(DviService.o) ... NOTE: a missing vtable usually means the first non-inline virtual member function has no definition. "___cxa_guard_release", referenced from: OpenHome::Net::OutputProcessorUpnp::ProcessBool(OpenHome::Brx const&, bool&) in libohNetCore.a(ProtocolUpnp.o) OpenHome::Net::DviSubscription::Log(OpenHome::IWriter&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::PropertyWriter::WriteVariableStart(OpenHome::IWriter&, OpenHome::Brx const&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::PropertyWriter::WriteVariableEnd(OpenHome::IWriter&, OpenHome::Brx const&) in libohNetCore.a(DviSubscription.o) OpenHome::Net::DviProtocolUpnp::GetAttribute(char const*, char const**) const in libohNetCore.a(DviProtocolUpnp.o) OpenHome::Net::DviProtocolUpnpServiceXmlWriter::GetRelatedVariableName(OpenHome::Bwh&, OpenHome::Brx const&, OpenHome::Brx const&) in libohNetCore.a(DviProtocolUpnp.o) "operator delete(void*)", referenced from: OpenHome::Brh::~Brh() in libohNetCore.a(CpDeviceC.o) _CpDeviceListCreateUpnpAll in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpRoot in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpUuid in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpDeviceType in libohNetCore.a(CpDeviceUpnpC.o) _CpDeviceListCreateUpnpServiceType in libohNetCore.a(CpDeviceUpnpC.o) CpProxyAvOpenhomeOrgCredentials1C::CpProxyAvOpenhomeOrgCredentials1C(void*) in libohNetProxies.a(CpAvOpenhomeOrgCredentials1C.o) ... ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) Showing first 200 notices only

Am I doing it right?

53fd9f36cd does not build on Linux

I get the following error when trying to build ohNet on Linux:

gcc -fPIC -o Build/Obj/Posix/Debug/mDNS.o -c -fexceptions -Wall -Werror -pipe -D_GNU_SOURCE -D_REENTRANT -DDEFINE_LITTLE_ENDIAN -DDEFINE_TRACE -g -O0  -fvisibility=hidden -Wno-psabi -IBuild/Include/ OpenHome/Net/Device/Bonjour/mDNSCore/mDNS.c
OpenHome/Net/Device/Bonjour/mDNSCore/mDNS.c: In function ‘ProcessQuery’:
OpenHome/Net/Device/Bonjour/mDNSCore/mDNS.c:5316:7: error: variable ‘i’ set but not used [-Werror=unused-but-set-variable]
OpenHome/Net/Device/Bonjour/mDNSCore/mDNS.c: In function ‘mDNS_Close’:
OpenHome/Net/Device/Bonjour/mDNSCore/mDNS.c:7305:10: error: variable ‘rrcache_totalused’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
make: *** [Build/Obj/Posix/Debug/mDNS.o] Error 1

Linking error when cross-compiling for Core-armv5

Cross-compiling ohNet for the platform Core-armv5 fails with undefined references:

Build/Obj/Core-armv5/Release/libTestFramework.a(TestFramework.o): In function `OpenHome::Os::ConsoleWrite(char const*)':
$HOME/output/build/ohnet-1.13.2452/Build/Include/OpenHome/OsWrapper.inl:21: undefined reference to `OsConsoleWrite'
Build/Obj/Core-armv5/Release/libTestFramework.a(TestFramework.o): In function `OpenHome::Os::TimeInUs(OsContext*)':
$HOME/output/build/ohnet-1.13.2452/Build/Include/OpenHome/OsWrapper.inl:17: undefined reference to `OsTimeInUs'
$HOME/output/build/ohnet-1.13.2452/Build/Include/OpenHome/OsWrapper.inl:17: undefined reference to `OsTimeInUs'
[...]

Attribute source type 'Sender' supported for product service?

The wiki for the Product service says that the following source types are supported:

  • Playlist
  • Radio
  • Receiver
  • UpnpAv
  • NetAux
  • Analog
  • Digital
  • Hdmi

The wiki for the Sender service says:

If a device's Product service reports an attribute source of type 'Sender', then that device is guaranteed to bear the Sender service.

Does the Product service supports an attribute source of type 'Sender'?

64bis build on Ubuntu

I'm having trouble to compile on 64bit.
When building java bindings, it looks for libjvm.so in jre/lib/i386/server/
even on x84 system.

g++: error: /usr/lib/jvm/java-7-oracle/jre/lib/i386/server/libjvm.so: No such file or directory

Of course, when using i386 libs, it show Invalid FileFormat

/usr/local/java/jdk1.8.0_60_i386/jre/lib/i386/server/libjvm.so: error adding symbols: File in wrong format

Segfault under JVM6 Linux ARM

Please refer here to forum pos regarding a crash under ARM jvm-6 I can't get past:

http://forum.openhome.org/showthread.php?tid=1031

I am running under Angstrom embedded ARM Linux platform. I originally build ohNet from source as a cross compile. I have only been trying the Java tests included in the ohnet.jar. I have not thus far written any of my own code.

As noted in the forum thread, I have since switched to building directly on the target ARM platform, to eliminate any possibility of linking with the wrong libraries. I was originally running openjvm 6 zero. Segfault logs are included in pastebins in the posts.

I tried switching to openjvm cacao but couldnt get that version of the vm working at all.

Finally, I installed the Oracle version of the VM. I am still getting segfaults for all the tests. Note also that I have successfully run the straight C++ native tests (not involving Java), and they run fine.

The following are logs of a series of segfaults under the Oracle VM: http://pastebin.com/RGNkUzdU

If you can help us out with this, we would really appreciate it as we are completely stuck right now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.