mysql in c++ initialize error occurs a simple program is executed in redhat9.0 , using gcc 3.2.2 com

Y

yogesh

mysql in c++ initialize error occurs a simple program is executed in
redhat9.0 , using gcc 3.2.2 compiler version ...


#include <stdio.h>
#include <mysql.h>
#include <string.h>

int main()
{
MYSQL* mysql;
MYSQL_RES* res;
MYSQL_ROW row;
char query[80];

mysql = mysql_init( NULL );

if( mysql == NULL ) {

mysql_real_connect( mysql, "localhost", "username",
"password","dbname", 0, "/tmp/mysql.sock", 0 );

sprintf( query, "SELECT * FROM tablename" );
mysql_real_query( mysql, query, (unsigned
int)strlen(query) );
res = mysql_use_result( mysql );

while( row = mysql_fetch_row( res ) ) {
printf( "%s %s\n", row[0], row[1] );
}



mysql_free_result( res );
mysql_close( mysql );
}

else {
printf( "mysql_init returned NULL\n" );
}
return 0;
}
"n1.cpp" 34L, 656C written

if i run the code iam getting the error as follows

[root@localhost yog]# gcc n1.cpp
/tmp/cccUdCdL.o(.text+0x16): In function `main':
: undefined reference to `mysql_init'
/tmp/cccUdCdL.o(.text+0x4b): In function `main':
: undefined reference to `mysql_real_connect'
/tmp/cccUdCdL.o(.text+0x81): In function `main':
: undefined reference to `mysql_real_query'
/tmp/cccUdCdL.o(.text+0x8f): In function `main':
: undefined reference to `mysql_use_result'
/tmp/cccUdCdL.o(.text+0xa0): In function `main':
: undefined reference to `mysql_fetch_row'
/tmp/cccUdCdL.o(.text+0xd8): In function `main':
: undefined reference to `mysql_free_result'
/tmp/cccUdCdL.o(.text+0xe6): In function `main':
: undefined reference to `mysql_close'
/tmp/cccUdCdL.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status
 
J

John Harrison

yogesh said:
mysql in c++ initialize error occurs a simple program is executed in
redhat9.0 , using gcc 3.2.2 compiler version ...


#include <stdio.h>
#include <mysql.h>
#include <string.h>

int main()
{
MYSQL* mysql;
MYSQL_RES* res;
MYSQL_ROW row;
char query[80];

mysql = mysql_init( NULL );

if( mysql == NULL ) {

mysql_real_connect( mysql, "localhost", "username",
"password","dbname", 0, "/tmp/mysql.sock", 0 );

sprintf( query, "SELECT * FROM tablename" );
mysql_real_query( mysql, query, (unsigned
int)strlen(query) );
res = mysql_use_result( mysql );

while( row = mysql_fetch_row( res ) ) {
printf( "%s %s\n", row[0], row[1] );
}



mysql_free_result( res );
mysql_close( mysql );
}

else {
printf( "mysql_init returned NULL\n" );
}
return 0;
}
"n1.cpp" 34L, 656C written

if i run the code iam getting the error as follows

[root@localhost yog]# gcc n1.cpp
/tmp/cccUdCdL.o(.text+0x16): In function `main':
: undefined reference to `mysql_init'
/tmp/cccUdCdL.o(.text+0x4b): In function `main':
: undefined reference to `mysql_real_connect'
/tmp/cccUdCdL.o(.text+0x81): In function `main':
: undefined reference to `mysql_real_query'
/tmp/cccUdCdL.o(.text+0x8f): In function `main':
: undefined reference to `mysql_use_result'
/tmp/cccUdCdL.o(.text+0xa0): In function `main':
: undefined reference to `mysql_fetch_row'
/tmp/cccUdCdL.o(.text+0xd8): In function `main':
: undefined reference to `mysql_free_result'
/tmp/cccUdCdL.o(.text+0xe6): In function `main':
: undefined reference to `mysql_close'
/tmp/cccUdCdL.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status

That's not an 'initialize error' it's a link error. Anyway it's not a
C++ problem, you are using your compiler incorrectly. Most likely cause
is that you failed to incude the correct library when you linked. But
who knows.

If that doesn't help then try asking on a mysql group or a g++ group.
Its not a C++ problem.

john
 
K

Kai-Uwe Bux

yogesh said:
mysql in c++ initialize error occurs a simple program is executed in
redhat9.0 , using gcc 3.2.2 compiler version ...


#include <stdio.h>
#include <mysql.h>
#include <string.h>

int main()
{
MYSQL* mysql; [...]
/tmp/cccUdCdL.o(.text+0xd8): In function `main':
: undefined reference to `mysql_free_result'
/tmp/cccUdCdL.o(.text+0xe6): In function `main':
: undefined reference to `mysql_close'
/tmp/cccUdCdL.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status


You have a linker error. Very likely, you did not include the mysql library
in the linker arguments passed to the compiler. Please refer to the
documentation of g++ for the specifics of how to pass the information to
the linker that your program needs the mysql library.

Generally, for help on how to use g++, the gnu folks have their own news
group down the hallway at

gnu.g++.help

Also note that particular platforms and most third party libraries are
off-topic in this group. Please see the FAQ and the weekly welcome post.


Best

Kai-Uwe Bux
 
?

=?iso-8859-1?q?Erik_Wikstr=F6m?=

mysql in c++ initialize error occurs a simple program is executed in
redhat9.0 , using gcc 3.2.2 compiler version ...

#include <stdio.h>
#include <mysql.h>
#include <string.h>

int main()
{
MYSQL* mysql;
MYSQL_RES* res;
MYSQL_ROW row;
char query[80];

mysql = mysql_init( NULL );

if( mysql == NULL ) {

mysql_real_connect( mysql, "localhost", "username",
"password","dbname", 0, "/tmp/mysql.sock", 0 );

sprintf( query, "SELECT * FROM tablename" );
mysql_real_query( mysql, query, (unsigned
int)strlen(query) );
res = mysql_use_result( mysql );

while( row = mysql_fetch_row( res ) ) {
printf( "%s %s\n", row[0], row[1] );
}

mysql_free_result( res );
mysql_close( mysql );
}

else {
printf( "mysql_init returned NULL\n" );
}
return 0;}

"n1.cpp" 34L, 656C written

if i run the code iam getting the error as follows

[root@localhost yog]# gcc n1.cpp
/tmp/cccUdCdL.o(.text+0x16): In function `main':
: undefined reference to `mysql_init'
/tmp/cccUdCdL.o(.text+0x4b): In function `main':
: undefined reference to `mysql_real_connect'
/tmp/cccUdCdL.o(.text+0x81): In function `main':
: undefined reference to `mysql_real_query'
/tmp/cccUdCdL.o(.text+0x8f): In function `main':
: undefined reference to `mysql_use_result'
/tmp/cccUdCdL.o(.text+0xa0): In function `main':
: undefined reference to `mysql_fetch_row'
/tmp/cccUdCdL.o(.text+0xd8): In function `main':
: undefined reference to `mysql_free_result'
/tmp/cccUdCdL.o(.text+0xe6): In function `main':
: undefined reference to `mysql_close'
/tmp/cccUdCdL.o(.eh_frame+0x11): undefined reference to
`__gxx_personality_v0'
collect2: ld returned 1 exit status

This is a bit off topic here, you should ask these kinds of questions
in a group for either gcc/g++ or for mysql. Your problem however is
that you have forgotten to add the right libraries to the path of the
linker.
 
J

John Harrison

if i run the code iam getting the error as follows
[root@localhost yog]# gcc n1.cpp

That's not an 'initialize error' it's a link error. Anyway it's not a
C++ problem, you are using your compiler incorrectly. Most likely cause
is that you failed to incude the correct library when you linked. But
who knows.

If that doesn't help then try asking on a mysql group or a g++ group.
Its not a C++ problem.

In fact looking at your compilation there are two problems, 1) use g++
for C++ code, 2) include the corect library

Something like

g++ n1.cpp -lmysql

***BUT*** I do not know what the mysql library is called, it might not
be -lmysql it might be -lsomething_else. I think you need to RTFM.

john
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top