views:

86

answers:

5
#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

+1  A: 

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.

pmr
+1  A: 

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.

deinst
+1  A: 

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.

Didier Trosset
A: 

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.

Gui13
+2  A: 

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)
codaddict
thanks that script helped clear up afew things, the following works just fine:"gcc -o mysql-test MySQL-Test.c -lmysqlclient" now that the test class is working, how would i port that command to an IDE such as NetBeans?
JB87
I'd suggest writing a Makefile which will take care of compiling the application automatically. In there you can specify the command line arguments for GCC. You can find information on how to write makefiles here: http://www.delorie.com/djgpp/doc/ug/larger/makefiles.html There are load of websites to help you writing your own makefile.
Gui13