sql >> Database >  >> RDS >> Mysql

mysql-connector cpp in centos 6 ongedefinieerde verwijzing naar

Uw huidige build-opdracht:g++ demo.cpp -o demo bevat geen informatie voor de linker ld waaraan bibliotheken moeten worden gekoppeld. Daarom krijg je een linkerfout:

In deze documentatie is geschreven welke bibliotheken nodig zijn.

U kunt statisch of dynamisch koppelen.
Statisch koppelen betekent dat uw uitvoerbare bestand zal draaien op machines waarop niet de benodigde bibliotheken zijn geïnstalleerd, aangezien de bibliotheken zich in het uitvoerbare bestand bevinden. Dit maakt het uitvoerbare bestand ook groter. In het geval van de MySQL Connector/C++ zijn de bibliotheken:libmysqlcppconn-static.a en libmysqlclient.a
Dynamische koppeling betekent dat uw uitvoerbare bestand de bibliotheken moet vinden op de machine waarop het moet worden uitgevoerd. De benodigde bibliotheek is:libmysqlcppconn.so .

Uw bouwopdracht met dynamisch koppelen (met behulp van libmysqlcppconn.so ) zou er als volgt uit moeten zien:

g++ demo.cpp -o demo -lmysqlcppconn

Let verder op het verschil tussen -l en -L zoals vermeld hier op SO of hier in de officiële gcc-linkerdocumentatie :

Je hebt geen pad nodig (-L ) hier omdat de bibliotheken onder /usr/local/lib . zouden moeten liggen wat de standaardinstallatie is en al in het zoekpad van de linker staat.



  1. SqlParameter staat geen tabelnaam toe - andere opties zonder SQL-injectieaanval?

  2. Is hexing-invoer voldoende om SQL-query's op te schonen?

  3. MySQL-containercrash na /etc/mysql/my.cnf wijziging, hoe terug te bewerken?

  4. Hoe MySQL/MariaDB-servers te beveiligen