Je moet de meeste onafhankelijke bibliotheek aan het einde van het commando plaatsen, zodat de compiler het symbool en de definities goed kan vinden:
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
Door het op deze manier te doen, zal de compiler doorgaan met zoeken naar ongedefinieerde symbolen van volgende gekoppelde bestanden. Bijvoorbeeld als IPO.o
gebruikt symbol(type/class/struct/function etc) gedefinieerd in CI_Metadata.o
, kan de compiler het vinden omdat je CI_Metadata.o
. plaatst na IPO.o
. De meeste bibliotheken zijn onafhankelijk, daarom staan ze aan het einde van het compile/link-commando.