It is a "gcc >=4.6.2" issue. With the new mandates from gcc, any external library references are now required to be explicitly designated in the linker string. IIRC prior to 4.6.2, simply having the library on your system and the compiler being able to find it was enough. That's what the error is telling you:
/usr/bin/ld: CMakeFiles/ksnapshot.dir/windowgrabber.cpp.o: undefined reference to symbol 'XShapeQueryExtension' /usr/bin/ld: note: 'XShapeQueryExtension' is defined in DSO /usr/lib/libXext.so.6 so try adding it to the linker command line /usr/lib/libXext.so.6: could not read symbols: Invalid operation collect2: ld returned 1 exit status
THIS is the important part of the error:
/usr/bin/ld: note: 'XShapeQueryExtension' is defined in DSO /usr/lib/libXext.so.6 so try adding it to the linker command line
It's gcc telling you, "I know exactly where the darn symbol is located, but I'm not going to use the damn thing until you put it in your linker string..."
Yes, I understand that gcc is becoming more persnickety with each release. All I am questioning is why the failure with ksnapshot? No previous build used Xext to build ksnapshot. I see the "-lXext" reference in my build log for kuickshow but not with ksnapshot. Seems gcc is overextending itself and linking things that previously were not linked.
Darrell