Perintah build Anda saat ini:g++ demo.cpp -o demo
tidak mengandung informasi untuk tautan ld
perpustakaan mana yang harus dihubungkan. Karena itu Anda mendapatkan kesalahan tautan:
Dalam dokumentasi ini ditulis perpustakaan mana yang dibutuhkan.
Anda dapat menautkan statis atau dinamis.
Tautan statis berarti executable Anda akan berjalan pada mesin yang tidak memiliki library yang diperlukan terinstal karena library berada di dalam executable. Ini juga membuat executable lebih besar ukurannya. Dalam kasus Konektor MySQL/C++ perpustakaannya adalah:libmysqlcppconn-static.a
dan libmysqlclient.a
Tautan dinamis berarti executable Anda perlu menemukan perpustakaan di mesin tempat ia harus dijalankan. Pustaka yang dibutuhkan adalah:libmysqlcppconn.so
.
Perintah build Anda dengan tautan dinamis (menggunakan libmysqlcppconn.so
) akan terlihat seperti:
g++ demo.cpp -o demo -lmysqlcppconn
Perhatikan lebih lanjut perbedaan antara -l
dan -L
seperti yang disebutkan di sini di SO
atau di sini, di dokumentasi linker gcc resmi
:
Anda tidak memerlukan jalur (-L
) di sini karena perpustakaan harus berada di bawah /usr/local/lib
yang merupakan instalasi default dan sudah ada di jalur pencarian linker.