PDA

View Full Version : Compiling Qt in Linux: Unable to compile moc.cpp



paulocarvalho_br_2009
28th November 2013, 19:08
People, during compilation of Qt 4.8.5 in a Linux RHE 5.0 64-bit there goes the following linking command:


gmake[1]: Entering directory `/Work/ur5m/qt4.8.5/src/tools/moc'
gcc -g -m64 -Wl,-Bdynamic -Wl,-u,___pseudo_link -L/usr/lib64 -Wl,-rpath,/usr/lib64 -Wl,-rpath-link,/Work/ur5m/qt4.8.5/lib -Wl,-O1 -Wl,-rpath,/Work/ur5m/qt4.8.5_install/lib -Wl,-rpath,/Work/ur5m/qt4.8.5_install/lib -o ../../../bin/moc release-shared/moc.o release-shared/preprocessor.o release-shared/generator.o release-shared/parser.o release-shared/token.o release-shared/main.o****-L/Work/ur5m/qt4.8.5/src/tools/bootstrap -lbootstrap -lz -lz

I put four red asterisks to mark four suspicious spaces in the configure-generated Makefile command, possibly indicating some environment variable left blank or something alike. But what?

The command fails with these linking error messages:


release-shared/moc.o: In function `normalizeType(char const*, bool)':
moc.cpp:(.text+0x3b29): undefined reference to `operator delete[](void*)'
moc.cpp:(.text+0x3bf5): undefined reference to `operator new[](unsigned long)'
release-shared/moc.o: In function `Moc::parseSlotInPrivate(ClassDef*, FunctionDef::Access)':
moc.cpp:(.text+0xa89e): undefined reference to `operator delete(void*)'
release-shared/moc.o: In function `Moc::parseSignals(ClassDef*)':
moc.cpp:(.text+0xb05c): undefined reference to `operator delete(void*)'
release-shared/moc.o: In function `Moc::parseSlots(ClassDef*, FunctionDef::Access)':
moc.cpp:(.text+0xb8dc): undefined reference to `operator delete(void*)'
release-shared/moc.o: In function `Moc::parse()':
moc.cpp:(.text+0xd27b): undefined reference to `operator delete(void*)'
moc.cpp:(.text+0xd3ae): undefined reference to `operator delete(void*)'
release-shared/moc.o:moc.cpp:(.text+0xd4e1): more undefined references to `operator delete(void*)' follow
release-shared/moc.o: In function `QList<NamespaceDef>::detach_helper_grow(int, int)':
moc.cpp:(.text._ZN5QListI12NamespaceDefE18detach_h elper_growEii[QList<NamespaceDef>::detach_helper_grow(int, int)]+0x66): undefined reference to `operator new(unsigned long)'
moc.cpp:(.text._ZN5QListI12NamespaceDefE18detach_h elper_growEii[QList<NamespaceDef>::detach_helper_grow(int, int)]+0xd6): undefined reference to `operator new(unsigned long)'
release-shared/moc.o: In function `QList<NamespaceDef>::append(NamespaceDef const&)':
(more about 2000 similar lines)

Please, help!

paulocarvalho_br_2009
29th November 2013, 18:38
Fixed: Problem caused by incorrectly set environment variables causing make to use gcc (instead of g++) to compile and link C++ code.