Din nuværende build-kommando:g++ demo.cpp -o demo indeholder ikke information om linkeren ld hvilke biblioteker skal linkes mod. På grund af det får du en linkerfejl:
I denne dokumentation er skrevet hvilke biblioteker der er nødvendige.
Du kan enten linke statisk eller dynamisk.
Statisk linkning betyder, at din eksekverbare vil køre på maskiner, der ikke har de nødvendige biblioteker installeret, da bibliotekerne er inde i den eksekverbare. Dette gør også den eksekverbare størrelse større. I tilfælde af MySQL Connector/C++ er bibliotekerne:libmysqlcppconn-static.a og libmysqlclient.a
Dynamisk linkning betyder, at din eksekverbare fil skal finde bibliotekerne på den maskine, hvor den skal køre. Det nødvendige bibliotek er:libmysqlcppconn.so .
Din build-kommando med dynamisk linking (ved at bruge libmysqlcppconn.so ) skal se sådan ud:
g++ demo.cpp -o demo -lmysqlcppconn
Bemærk yderligere forskellen mellem -l og -L som nævnt her på SO
eller her i den officielle gcc linker-dokumentation
:
Du behøver ikke en sti (-L ) her, da bibliotekerne skal ligge under /usr/local/lib som er standardinstallationen og allerede er i søgestien til linkeren.