Mailing List
Home
Forum Home
MySQL General - General MySQL discussion
MySQL++ - Programming with the C++ API to MySQL
MaxDB - Everything about MaxDB, formerly known as SAP DB
ODBC - ODBC with the MySQL Connector/ODBC driver
MySQL on Win32 - Runing MySQL on Windows 9x/Me/NT/2000/XP
Java Help - Mostly related to the MySQL Connector/J driver
Perl - Perl support for MySQL with DBI and DBD::mysql
GUI - MySQL GUI Tools
Announcement
Subjects
Subject: mysql openssl Question
ERROR 1045: Access denied for user: 'root@localhost ' (Using
password: NO)
Update one field with more fields from another table
Subject: Getting Identity after INSERT
ERROR 2002: Can 't connect to local MySQL server through socket
mysql test 4 1 fails with the gis test
Subject: MySQL Cluster Software
Downgrade Mysql from 4 to 3 23
Mysql 4 0 Oracle Stored Procedure Trigger Conversion
Can 't access mysql after kernel upgrade
Executing MySQL Commands From Within C Program
Comparing and writing out BLOBS
Subject: Re: Preventing Duplicate Entries
FULLTEXT query format question
Strange behavior, Table Level Permission
Does the binary log enabling affect the MySQL performances?
mysql:it 's a db not a dbms how it 's possible?!
mysql have same function mthod as Oracle decode()
 
linking mysql++ 2.3.2

linking mysql++ 2.3.2

2007-11-30       - By Joe Hudson

 Back
Reply:     1     2     3     4     5     6  

Hi!

Having a bit of a problem with  linking version 2.3.2 of mysql++.

I'm using Eclipse on os X 10.4 dual G5.

I get:
g++ -I"/Users/joehudson/Documents/workspace/Wendy/src" -O0 -g3 -Wall -c
-fmessage-length=0 -MMD -MP -MF"src/Wtrader_testing.d"
-MT"src/Wtrader_testing.d" -o"src/Wtrader_testing.o"
"../src/Wtrader_testing.cpp"
/usr/local/include/mysql++/common.h:157: error: 'MYSQL_FIELD' does not name
a type
/usr/local/include/mysql++/connection.h:145: error: 'my_bool' has not been
declared
/usr/local/include/mysql++/connection.h:159: error: expected ',' or '...'
before '&' token
/usr/local/include/mysql++/connection.h:174: error: 'my_bool' has not been
declared
/usr/local/include/mysql++/connection.h:375: error: 'st_mysql_options' does
not name a type
/usr/local/include/mysql++/connection.h:455: error: 'my_ulonglong' does not
name a type
...

These are things defined in mysql.h

The mysql++ 2.3.2 lib builds and installs ok and the example programs seem
to work.

So, it seems somehow when I  build my own program somehow the process is not
including mysql.h.

I had previously been using version 2.2.1 and didn't have this problem.
(the right libraries and headers were being included)
ded

I upgraded to 2.3.2 and made some additions to query.h adding template
functions to take a table name string along with a  SSQLS object.
for insert, update and  replace. e.g.

   template <class T>
   Query& insert(const T& v, const std::string& table)
   {
       reset();

       MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
               "INSERT INTO " << table << " (" <<
               v.field_list() << ") VALUES (" <<
               v.value_list() << ')';
       return *this;
   }

(I'm using multiple threads and don't want to define a seperate SSQLS for
each thread or put a lock on the .table(str) method between each insert., if
that makes any sense..)

basically since I upgraded and added that (both together, foolishly) I'm
getting the above errors. spent a good few hours looking through the docs,
my code, going back to 2.2.1 (with similar mods to query.h made) and I get
the same errors.

It gets weirder.

If I change the order of my last 3 SSQLS struct definitions from:

   sql_create_3(equity_row, 1, 3,
       string,                currency,
       double,                amount,
       double,                available)

   sql_create_3(accountmanager_row, 1, 3,
       string,                asset, /* is also the table name of the table
for that asset */
       string,                type,
       string,                dealer)

   sql_create_3(currencies_row, 1, 3,
           string,            code,
           string,            country,
           string,            name)

to:

   sql_create_3(currencies_row, 1, 3,
           string,            code,
           string,            country,
           string,            name)

   sql_create_3(equity_row, 1, 3,
       string,                currency,
       double,                amount,
       double,                available)

   sql_create_3(accountmanager_row, 1, 3,
       string,                asset, /* is also the table name of the table
for that asset */
       string,                type,
       string,                dealer)

and do a clean build the errors change to:

g++ -L/usr/local/lib -L/usr/local/mysql-standard-5 (See http://ard-5.ora-code.com).0.37/lib/mysql -o
"Wendy"  ./src/Waccountmanager.o ./src/Wcommand.o ./src/Wdbaccess.o
./src/Wdbconpool.o ./src/Wdealer.o ./src/Wgraph.o ./src/Whub.o
./src/Wmarket.o ./src/Wmarket_i.o ./src/Wmoney.o ./src/Woptions.o
./src/Wplugin.o ./src/Wplugin_base.o ./src/Wportfolio.o ./src/Wsignals.o
./src/Wsystem.o ./src/Wtrader.o ./src/Wtypeutils.o ./src/dbaccess_test.o
./libsrc/gnuplot_i.o   -lmysqlpp -lboost_filesystem-1 (See http://tem-1.ora-code.com)_34
-lboost_thread-mt-1_34 -lmysqlclient
/usr/bin/ld: Undefined symbols:
Wdbaccesstypes::equity_row::names
Wdbaccesstypes::accountmanager_row::names
Wmarket::info(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, Wdbaccesstypes::instinfo&)
Wmarket::quote(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, Wtimediv)
Wmarket_i::bid(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, float, Wtransaction_i&)
Wmarket_i::offer(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, float, Wtransaction_i&)
Wmarket_i::info(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, Wdbaccesstypes::instinfo&)
Wmarket_i::quote(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, Wtimediv)
collect2: ld returned 1 exit status

then if I update the header containing the SSQLS definitions by say putting
another blank line in I get the old erros  at the top of the email.

what the heck is going on!?

I'm quite prepared to accept that I'm doing something stupid, I'd just like
to know what it is!

some clues would be massively appreciated!

has anyone encountered something similar?

thanks,
Joe


--
LIVE MUSIC + OTHER PERFORMANCE ART CHARITY FUNDRAISER
Doors 6.30pm - 1st act 7:30pm,  2nd SUNDAY of EVERY month
@ THE TALKING HEADS, PORTSWOOD Rd, SOUTHAMPTON
?3 entrance: all profits to 2 Local Charities. SCRATCH and HAMPSHIRE
AUTISTIC SOCIETY
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ------
-- ---- ---- ---


Contact joe.hudson@(protected) for more info.
-- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --
-- ---- ---- ---- ---- ---- ---- ------
Visit http://www.myspace.com/littlecog  for latest details, to post new
events or volunteer for future community action events.