On Thu, Aug 4, 2016 at 7:03 PM, Chris Knadle <chris.kna...@coredump.us>
wrote:

>
>
> Jose Gutierrez de la Concha:
> > Hi,
> >
> > When building an Ice application with C++11/C++14 enabled you need to
> link
> > with libraries with ++11 suffix -lIce++11 instead of -lIce.
> >
> > libzeroc-ice3.6 provide C++98 libraries and C++11 libraries with ++11
> > suffix and the APIs are slightly different.
>
> I tried this (patch is attached), but this results in an error message
> that the linker is unable to find -lIce++11:
>
>
You are right, I was confused with our master branch (3.7) where we get rid
of c++11 subdir

> ---------------------------------------------------------------------
>
> g++ -c -include release/murmurd -m64 -pipe -g -O2
> -fdebug-prefix-map=/build/mumble-1.2.16/src/murmur=.
> -fstack-protector-strong -Wformat -Werror=format-security -Wfatal-errors
> -fvisibility=hidden -g -std=c++11 -O2 -Wall -W -D_REENTRANT
> -DNO_UPDATE_CHECK -DPLUGIN_PATH=/usr/lib/mumble
> -DMUMBLE_VERSION=1.2.16-1 -DHAVE_LIMITS_H -DHAVE_ENDIAN_H
> -DRESTRICT=__restrict__ -D_FORTIFY_SOURCE=2
> -DMUMBLE_VERSION_STRING=1.2.16 -DMURMUR -DUSE_DBUS -DUSE_ICE
> -DUSE_BONJOUR -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB
> -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
> -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore
> -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml
> -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtDBus
> -I../../src -I. -I/usr/include/speech-dispatcher -I../bonjour -Irelease
> -I/usr/include/avahi-compat-libdns_sd -o release/moc_BonjourServer.o
> release/moc_BonjourServer.cpp
>
> g++ -m64 -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -Wl,-O1 -o
> ../../release/murmurd release/ACL.o release/Group.o release/Channel.o
> release/Connection.o release/User.o release/Timer.o release/CryptState.o
> release/OSInfo.o release/Net.o release/SSL.o release/Version.o
> release/main.o release/Server.o release/ServerUser.o release/ServerDB.o
> release/Register.o release/Cert.o release/Messages.o release/Meta.o
> release/RPC.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o
> release/BonjourServiceRegister.o release/BonjourServer.o
> release/Mumble.pb.o release/Murmur.o release/moc_ACL.o
> release/moc_Channel.o release/moc_Connection.o release/moc_Server.o
> release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o
> release/moc_DBus.o release/moc_MurmurIce.o
> release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o
> -L../../release -L/usr/lib/x86_64-linux-gnu -lprotobuf -lcap -lIce++11
> -lIceUtil -lQtDBus -lssl -lcrypto -ldns_sd -lavahi-common -lavahi-client
> -lpthread -lQtSql -lQtXml -lQtNetwork -lQtCore

/usr/bin/ld: cannot find -lIce++11
>
> collect2: error: ld returned 1 exit status
>
> Makefile.Release:183: recipe for target '../../release/murmurd' failed
>
> make[4]: *** [../../release/murmurd] Error 1
>
> ---------------------------------------------------------------------
>
> I had a quick look at the documentation for using Ice 3.6 concerning C++
> and at the moment it doesn't mention using -lIce++11:
>
>
> https://doc.zeroc.com/display/Ice36/Using+the+Linux+Binary+Distributions#
> UsingtheLinuxBinaryDistributions-C++
>
> instead it's suggested to use -L/usr/lib/c++11 for 32-bit and
> -L/usr/lib64/c++11 for 64-bit.  The Debian package seems to have this
> directory in /usr/lib/x86_64-linux-gnu/c++11.  I tried adding that but
> that doesn't seem to help (and I suspect this is redundant as
> -L/usr/lib/x86_64-linux-gnu is included):
>
> ---------------------------------------------------------------------
>
> g++ -c -include release/murmurd -m64 -pipe -g -O2
> -fdebug-prefix-map=/build/mumble-1.2.16/src/murmur=.
> -fstack-protector-strong -Wformat -Werror=format-security -Wfatal-errors
> -fvisibility=hidden -g -std=c++11 -O2 -Wall -W -D_REENTRANT
> -DNO_UPDATE_CHECK -DPLUGIN_PATH=/usr/lib/mumble
> -DMUMBLE_VERSION=1.2.16-1 -DHAVE_LIMITS_H -DHAVE_ENDIAN_H
> -DRESTRICT=__restrict__ -D_FORTIFY_SOURCE=2
> -DMUMBLE_VERSION_STRING=1.2.16 -DMURMUR -DUSE_DBUS -DUSE_ICE
> -DUSE_BONJOUR -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB
> -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
> -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore
> -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml
> -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtDBus
> -I../../src -I. -I/usr/include/speech-dispatcher -I../bonjour -Irelease
> -I/usr/include/avahi-compat-libdns_sd -o release/moc_BonjourServer.o
> release/moc_BonjourServer.cpp
>
> g++ -m64 -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -Wl,-O1 -o
> ../../release/murmurd release/ACL.o release/Group.o release/Channel.o
> release/Connection.o release/User.o release/Timer.o release/CryptState.o
> release/OSInfo.o release/Net.o release/SSL.o release/Version.o
> release/main.o release/Server.o release/ServerUser.o release/ServerDB.o
> release/Register.o release/Cert.o release/Messages.o release/Meta.o
> release/RPC.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o
> release/BonjourServiceRegister.o release/BonjourServer.o
> release/Mumble.pb.o release/Murmur.o release/moc_ACL.o
> release/moc_Channel.o release/moc_Connection.o release/moc_Server.o
> release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o
> release/moc_DBus.o release/moc_MurmurIce.o
> release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o
> -L../../release -L/usr/lib/x86_64-linux-gnu -lprotobuf -lcap
> -L/usr/lib/x86_64-linux-gnu/c++11 -lIce -lIceUtil -lQtDBus -lssl
> -lcrypto -ldns_sd -lavahi-common -lavahi-client -lpthread -lQtSql
> -lQtXml -lQtNetwork -lQtCore
>
>

Can you try to put /usr/lib/x86_64-linux-gnu/c++11 before
/usr/lib/x86_64-linux-gnu
otherwise linker will pick the C++98 libs


> release/Murmur.o: In function
> `IceInternal::Cpp11FnCallbackNC::~Cpp11FnCallbackNC()':
>
> /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
> IceInternal::Cpp11FnCallbackNC'
>
> ---------------------------------------------------------------------
>
> Any other suggestions?
> Thanks
>
>    -- Chris
>
> --
> Chris Knadle
> chris.kna...@coredump.us
>



-- 
José Gutiérrez de la Concha
ZeroC, Inc.

Reply via email to