From: Thimble Smith Date: March 19 1999 9:11pm Subject: Re: [MySQL] link error List-Archive: http://lists.mysql.com/mysql/645 Message-Id: <19990319141102.L17225@desert.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Hi. First, you really should use the 'mysqlbug' program to report problems - it tells us a lot of useful information about your setup (information which you did not include). Look in the manual for information on how to file a useful problem report. Second, any time you're having trouble compiling anything, it's really important to give the exact command used to compile (and give version information for the tools you're using). Thank you for at least including the real text of [part of] the error message. Third, to answer your question: probably you need to tell your linker to link against the mysqlclient library. Usually you do it like this: cc -Wall -O2\ -I/usr/ports/databases/mysql321/work/mysql-3.21.33b/include\ my_program.c\ -L/usr/ports/databases/mysql321/work/mysql-3.21.33b/include\ -lmysqlclient -lm\ -o my_program If you're not familiar with those flags, look at your compiler documentation. Fourth, you're missing some crucial calls in your C program. You need to call mysql_init() before you call any other mysql functions. You should call mysql_disconnect() after you're through. Fifth, it's better to put the path to the include file in your compile line (like I did in the example above, using the -I flag) instead of in your source code. If you move your installation, you shouldn't have to edit all of your source code. Blech. Maybe you are just making a test program, and you're going to do it all "correctly" once you get the test working. My experience says that it is most important in "test" programs to do everything "correctly" - if you don't, then you're testing won't match your real environment! If my answers are way off track, please send a complete problem report so that we'll have a better idea of what you need! Thanks, Tim On Fri, Mar 19, 1999 at 03:54:07PM -0500, RaymanJ@stripped wrote: > Hello, > I am testing out how to connect to MySQL with a C program. This is the first > time for me to do this. > Problem: > When ever I compile my program it gives me an error message as below. > > /var/tmp/ccyP17051.o: Undefined symbol `_mysql_connect' referenced from text > seg > ment > > I have tried to locate this file but to no avail. Can anyone help me with > this. Why is it happening and how to fix it. > My code below: > > #include > #include > #include"/usr/ports/databases/mysql321/work/mysql-3.21.33b/include/mysql.h" > > MYSQL mysql; > > void exiterr(int exitcode) > { > fprintf( stderr, "%s\n", mysql_error(&mysql) ); > exit( exitcode ); > } > > int main() > { > mysql_connect(&mysql, NULL, NULL, NULL); > exiterr(1); > > if (mysql_select_db(&mysql,"test")) > exiterr(2); > > } > > Thanks, > Ray > > --------------------------------------------------------------------- > To request this thread, e-mail mysql-thread643@stripped > To unsubscribe, send a message to the address shown in the > List-Unsubscribe header of this message. If you cannot see it, > e-mail mysql-unsubscribe@stripped instead. > For archive commands, etc, e-mail: mysql-help@stripped >