Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
undefined reference to 'DvInvocationStd(OpenHome::Net::IDviInvocation&)'
09-02-2015, 11:09 AM
Post: #1
undefined reference to 'DvInvocationStd(OpenHome::Net::IDviInvocation&)'
I Implemented a class from the class DvProviderUpnpOrgConnectionManager1Cpp.
There is a Linked error:

./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoConnectionComplete(Ope​nHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:210: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoGetCurrentConnectionID​s(OpenHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:221: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoGetProtocolInfo(OpenHo​me::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:162: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoPrepareForConnection(O​penHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:193: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoGetCurrentConnectionIn​fo(OpenHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:243: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
collect2: error: ld returned 1 exit status
Makefile:15: recipe for target 'OhNetUpnp' failed
make: *** [OhNetUpnp] Error 1
//=====================================
So. list files in the libohNetCore.a.
the DvInvocationStd.o is exist!

$ ar -t ./libs/libohNetCore.a
DvDeviceC.o
DviDevice.o
DvInvocationC.o
DvInvocationStd.o
DviProtocolUpnp.o
DviProviderSubscriptionLongPoll.o

//==========================================
And. list the symbel in the DvInvocationStd.o
All is right! The Constructor is exist!

$ nm ./libs/libohNetCore.a | grep "DvInvocationStd"
DvInvocationStd.o:
00000000000000a0 T _ZN8OpenHome3Net15DvInvocationStdC1ERNS0_14IDviInvocationE
00000000000000a0 T _ZN8OpenHome3Net15DvInvocationStdC2ERNS0_14IDviInvocationE
0000000000000000 W _ZN8OpenHome3Net15DvInvocationStdD0Ev
0000000000000000 W _ZN8OpenHome3Net15DvInvocationStdD1Ev
0000000000000000 W _ZN8OpenHome3Net15DvInvocationStdD2Ev
0000000000000000 n _ZN8OpenHome3Net15DvInvocationStdD5Ev
0000000000000030 T _ZNK8OpenHome3Net15DvInvocationStd17GetClientEndpointERjS2_
0000000000000020 T _ZNK8OpenHome3Net15DvInvocationStd17ResourceUriPrefixEv
0000000000000010 T _ZNK8OpenHome3Net15DvInvocationStd7AdapterEv
0000000000000000 T _ZNK8OpenHome3Net15DvInvocationStd7VersionEv
0000000000000000 V _ZTIN8OpenHome3Net15DvInvocationStdE
0000000000000000 V _ZTIN8OpenHome3Net16IDvInvocationStdE
0000000000000000 V _ZTSN8OpenHome3Net15DvInvocationStdE
0000000000000000 V _ZTSN8OpenHome3Net16IDvInvocationStdE
0000000000000000 V _ZTVN8OpenHome3Net15DvInvocationStdE
0000000000000000 V _ZTVN8OpenHome3Net16IDvInvocationStdE


============================================
Who knows how to fix it? Thanks!
Find all posts by this user
10-02-2015, 02:48 AM
Post: #2
RE: undefined reference to 'DvInvocationStd(OpenHome::Net::IDviInvocation&)'
(09-02-2015 11:09 AM)okgwf Wrote:  I Implemented a class from the class DvProviderUpnpOrgConnectionManager1Cpp.
There is a Linked error:

./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoConnectionComplete(Ope​nHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:210: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoGetCurrentConnectionID​s(OpenHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:221: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoGetProtocolInfo(OpenHo​me::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:162: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoPrepareForConnection(O​penHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:193: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
./libs/libohNetDevices.a(DvUpnpOrgConnectionManager1Std.o): In function `OpenHome::Net::DvProviderUpnpOrgConnectionManager1Cpp::DoGetCurrentConnectionIn​fo(OpenHome::Net::IDviInvocation&)':
/home/gwf/work/mi-sound/ohNet/OpenHome/Net/Bindings/Cpp/Device/Providers/DvUpnpOrgConnectionManager1Std.cpp:243: undefined reference to `OpenHome::Net::DvInvocationStd::DvInvocationStd(OpenHome::Net::IDviInvocation&)'
collect2: error: ld returned 1 exit status
Makefile:15: recipe for target 'OhNetUpnp' failed
make: *** [OhNetUpnp] Error 1
//=====================================
So. list files in the libohNetCore.a.
the DvInvocationStd.o is exist!

$ ar -t ./libs/libohNetCore.a
DvDeviceC.o
DviDevice.o
DvInvocationC.o
DvInvocationStd.o
DviProtocolUpnp.o
DviProviderSubscriptionLongPoll.o

//==========================================
And. list the symbel in the DvInvocationStd.o
All is right! The Constructor is exist!

$ nm ./libs/libohNetCore.a | grep "DvInvocationStd"
DvInvocationStd.o:
00000000000000a0 T _ZN8OpenHome3Net15DvInvocationStdC1ERNS0_14IDviInvocationE
00000000000000a0 T _ZN8OpenHome3Net15DvInvocationStdC2ERNS0_14IDviInvocationE
0000000000000000 W _ZN8OpenHome3Net15DvInvocationStdD0Ev
0000000000000000 W _ZN8OpenHome3Net15DvInvocationStdD1Ev
0000000000000000 W _ZN8OpenHome3Net15DvInvocationStdD2Ev
0000000000000000 n _ZN8OpenHome3Net15DvInvocationStdD5Ev
0000000000000030 T _ZNK8OpenHome3Net15DvInvocationStd17GetClientEndpointERjS2_
0000000000000020 T _ZNK8OpenHome3Net15DvInvocationStd17ResourceUriPrefixEv
0000000000000010 T _ZNK8OpenHome3Net15DvInvocationStd7AdapterEv
0000000000000000 T _ZNK8OpenHome3Net15DvInvocationStd7VersionEv
0000000000000000 V _ZTIN8OpenHome3Net15DvInvocationStdE
0000000000000000 V _ZTIN8OpenHome3Net16IDvInvocationStdE
0000000000000000 V _ZTSN8OpenHome3Net15DvInvocationStdE
0000000000000000 V _ZTSN8OpenHome3Net16IDvInvocationStdE
0000000000000000 V _ZTVN8OpenHome3Net15DvInvocationStdE
0000000000000000 V _ZTVN8OpenHome3Net16IDvInvocationStdE


============================================
Who knows how to fix it? Thanks!

I made a stupid mistake.
I just used a wrong order of the static library.
The right order is:
-lohNetDevices -lohNetCore rather than -lohNetCore -lohNetDevices
Find all posts by this user


Forum Jump: