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.