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: --------------------------------------------------------------------- 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 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
Description: Fix FTBFS bug with GCC 6 Author: Christiopher Knadle <chris.kna...@coredump.us> Bugs-Debian: https://bugs.debian.org/831184 Last-Updated: 2016-07-31 --- a/src/murmur/murmur.pro +++ b/src/murmur/murmur.pro @@ -49,6 +49,7 @@ LIBS *= -lcap } + QMAKE_CXXFLAGS *= -std=c++11 HEADERS *= UnixMurmur.h SOURCES *= UnixMurmur.cpp TARGET = murmurd @@ -93,7 +94,7 @@ win32:CONFIG(debug, debug|release) { LIBS *= -lIceD -lIceUtilD } else { - LIBS *= -lIce -lIceUtil + LIBS *= -L/usr/lib/x86_64-linux-gnu/c++11 -lIce -lIceUtil } DEFINES *= USE_ICE