Du bør sætte det mest uafhængige bibliotek i slutningen af kommandoen, så compileren kan finde symboler og definitioner korrekt:
c++ -L/usr/lib/x86_64-linux-gnu -o tom tom.o Block.o IPC.o \
ConnectMxctl.o CI_Metadata.o Log.o \
-lmysqlclient -lpthread -lz -lm -lrt -ldl
Ved at gøre det på denne måde vil compileren fortsætte med at søge efter udefinerede symboler fra næste linkende filer. For eksempel hvis IPO.o
har bruger symbol(type/klasse/struct/funktion osv.) defineret i CI_Metadata.o
, kan compileren finde det, fordi du sætter CI_Metadata.o
efter IPO.o
. De fleste biblioteker er uafhængige, det er derfor, de er i slutningen af kompilering/link-kommando.