When some options, like -Wl,--as-needed, are passed to the compiler (and
then to the liker) the order of linking options becomes important:
libraries must be specified after the objects in the linking command.
The implicit rule used was more or less:
kinect_upload_fw: kinect_upload_fw.o
$(CC) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@
with LDFLAGS expanded before $^ (the objects); use LDLIBS to specify the
libraries instead, which is expanded after $^.
More details in
http://ao2.it/it/blog/2011/11/27/dont-mix-ldflags-and-ldlibs