Tutorial :gcc wont compile and run MySQL C libraries



Question:

#include <my_global.h>  #include <mysql.h>    int main(int argc, char **argv)  {    printf("MySQL client version: %s\n", mysql_get_client_info());  }  

~$ gcc -o mysql-test MySQL-Test.c

im trying to execute this test program from terminal but get the following error message:

/tmp/cceEmI0I.o: In function main': MySQL-Test.c:(.text+0xa): undefined reference tomysql_get_client_info'

what is wrong? my system is ubuntu


Solution:1

MySQL comes with a special script called mysql_config. It provides you with useful information for compiling your MySQL client and connecting it to MySQL database server.

Pass --libs option - Libraries and options required to link with the MySQL client library.

$ mysql_config --libs  

Typical Output:

-L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -L/usr/lib64 -lssl -lcrypto  

Now you can add this to your compile/link line:

gcc -o mysql-test MySQL-Test.c $(mysql_config --libs)  


Solution:2

You need gcc -o mysql-test MySQL-Test.c -L/usr/local/mysql/lib -lmysqlclient -lz

Replace -L/usr/local/mysql/lib with wherever you client library is (if it isn't already in your libpath)

See the MySql instructions for building clients.


Solution:3

For uses of Netbeans on Linux

Open you make file (MakeFile) and add the following lines

# These are the flags that gcc requires in order to link correctly against our installed   # client packages  MYSQL_LIBS := $(shell mysql_config --libs)  

right below the Environment block.

Then right click on your project node , select Properties, Build and add $(MYSQL_LIBS) to the Additional options parameter.


Solution:4

You are not linking to the libraries. Use: gcc -llibrarygoeshere -o mysql-test MySQL-Test.c See here for more information about linking with gcc.


Solution:5

It is not a compilation error. It is a link error.

Add the mysql library to create your executable with option -lmysql should do the trick.


Solution:6

You forgot to link against the MySQL library. Try adding -lmysql to your compilation line.

See http://www.adp-gmbh.ch/cpp/gcc/create_lib.html for more information.


Solution:7

Maybe late but worked for me
If you are using an IDE you should link the library to your project.
I am using CodeBlocks on ubuntu 12.4 64x. For linking the library, you should go to Project -> Build options -> linker settings and add the library. this is my lib path : /usr/lib/x86_64-linux-gnu/libmysqlclient.so

Hope be useful...


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »