List:General Discussion« Previous MessageNext Message »
From:<sinisa Date:March 20 1999 12:59am
Subject:[mysql] compile and ikage problem still :(
View as plain text  
RaymanJ@stripped writes:
 > Hi again,
 > 	Let me try this again and give everyone more information on my problem.  As I
 > have tried the other suggestions but still the same problem.  I think I am not
 > able to link the correct files with my simple code.  All I want to do now is
 > at lest connect to MySQL database with my C program.  I was told to use the
 > mysqlbug program but I don't know how, but I did find it though.  So here is
 > as much information I can think of to give.
 > 
 > Server Software: FreeBSD 2.2.7
 > MySQL version:  3.21.33b
 > Compiler: gcc version 
 > 
 > Code I wrote:
 > 
 > #include<stdio.h>
 > #include<stdlib.h>
 > #include"/usr/ports/databases/mysql321/work/mysql-3.21.33b/include/mysql.h"
 >      //  if I put in #include"mysql.h" the compile can't link the files even
 > when I supply     //the path to it with the -l flag.
 > 
 > MYSQL mysql;
 > 
 > void exiterr(int exitcode)
 > {
 >         fprintf( stderr, "%s\n", mysql_error(&mysql) );
 >         exit( exitcode );
 > }
 > 
 > int main()
 > {
 >   mysql_init();
 > 
 >         if ( ! (mysql_connect(&mysql,"NULL","NULL","NULL")))
 >                exiterr(1);
 > 
 >         if (mysql_select_db(&mysql,"test"))
 >                 exiterr(2);
 > 
 > }
 > 
 > Error Messages:
 > 
 > Try #1:
 > bash-2.02$ gcc test.c
 > /var/tmp/cctu24781.o: Undefined symbol `_mysql_init' referenced from text
 > segmen
 > t
 > /var/tmp/cctu24781.o: Undefined symbol `_mysql_connect' referenced from text
 > seg
 > ment
 > 
 > Try #2:
 >  bash-2.02$ gcc test.c -lmysqlclient
 > ld: -lmysqlclient: no match 
 > 
 > Try #3:
 > bash-2.02$ gcc
 > -l/usr/ports/databases/mysql321/work/mysql-3.21.33b/include\test.
 > c\ -L/usr/ports/databases/mysql321/work/mysql-3.21.33b/include\ -lmysqlclient
 > -l
 > m\ -o test
 > gcc: test: No such file or directory
 > 
 > Change code:
 > old line:
 > 	#include"/usr/ports/databases/mysql321/work/mysql-3.21.33b/include/mysql.h"
 > 
 > new line:
 > 	#include"mysql.h"
 > 
 > Error Messages:
 > 
 > Try #1:
 > bash-2.02$ gcc test.c -lmysqlclient
 > test.c:5: mysql.h: No such file or directory
 > 
 > Try#2:
 > bash-2.02$ gcc test.c
 > -l/usr/ports/databases/mysql321/work/mysql-3.21.33b/includ
 > e/
 > test.c:5: mysql.h: No such file or directory
 > 
 > 
 > So how do I do this?  How do I use mysqlclient lib?  What do I do.  I am very
 > confused.  How do I create a proper debugger report for you guys also.
 > 
 > Thank you very much for the help,
 > --Ray
 > 

Hi!

You simply have to add -L switch in the linking phase, which will
point to a directory where libmysqlclient.a is located.

You also have to provide -I switch for a directory with mysql.h

Sinisa

+---------------------------------------------------------------------+
| TcX  ____  __     _____   _____  ___        ==  mysql@stripped        |
|     /*/\*\/\*\   /*/ \*\ /*/ \*\ |*|        Sinisa Milivojevic      |
|    /*/ /*/ /*/   \*\_   |*|   |*||*|        mailto:sinisa@stripped |
|   /*/ /*/ /*/\*\/*/  \*\|*|   |*||*|        Belgrade                |
|  /*/     /*/  /*/\*\_/*/ \*\_/*/ |*|_____   Serbia                  |
|  ^^^^^^^^^^^^/*/^^^^^^^^^^^\*\^^^^^^^^^^^                           |
|             /*/             \*\                   Developers Team   |
+---------------------------------------------------------------------+
Thread
[mysql] compile and ikage problem still :(RaymanJ20 Mar
  • Re: [mysql] compile and ikage problem still :(Thimble Smith20 Mar
  • [mysql] compile and ikage problem still :(sinisa20 Mar