Ditt nuvarande byggkommando:g++ demo.cpp -o demo
innehåller ingen information om länken ld
vilka bibliotek bör länkas mot. På grund av det får du ett länkfel:
I denna dokumentation skrivs vilka bibliotek som behövs.
Du kan antingen länka statiskt eller dynamiskt.
Statisk länkning betyder att din körbara kommer att köras på maskiner som inte har de nödvändiga biblioteken installerade eftersom biblioteken finns inuti den körbara filen. Detta gör också den körbara filen större i storlek. När det gäller MySQL Connector/C++ är biblioteken:libmysqlcppconn-static.a
och libmysqlclient.a
Dynamisk länkning betyder att din körbara fil kommer att behöva hitta biblioteken på maskinen där den ska köras. Det nödvändiga biblioteket är:libmysqlcppconn.so
.
Ditt byggkommando med dynamisk länkning (med libmysqlcppconn.so
) ska se ut så här:
g++ demo.cpp -o demo -lmysqlcppconn
Notera ytterligare skillnaden mellan -l
och -L
som nämnts här på SO
eller här i den officiella gcc länkdokumentationen
:
Du behöver ingen sökväg (-L
) här eftersom biblioteken ska ligga under /usr/local/lib
vilket är standardinstallationen och redan finns i länkens sökväg.