Anda harus meletakkan perpustakaan paling independen di akhir perintah, sehingga kompiler dapat menemukan simbol dan definisi dengan benar:
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
Dengan melakukannya dengan cara ini, kompiler akan terus mencari simbol yang tidak ditentukan dari file penautan berikutnya. Misalnya jika IPO.o
telah menggunakan simbol (tipe/kelas/struktur/fungsi dll) yang didefinisikan dalam CI_Metadata.o
, compiler dapat menemukannya karena Anda meletakkan CI_Metadata.o
setelah IPO.o
. Sebagian besar perpustakaan bersifat independen, itulah sebabnya mereka berada di akhir perintah kompilasi/tautan.