List:MySQL++« Previous MessageNext Message »
From:Patrick McMichael Date:December 30 2005 3:33pm
Subject:RE: [MySQL++]Good/Bad News:MinGW Support
View as plain text  
Although I did spend some time researching this problem, I gotta admit I
never got very far.  As it turns out, linking DLLs/Libs/SO's between c and
c++ and between platforms is a real pain in the @$$ - hence the term "dll
hell".  I'm not sure which code you mean should include __stdcall, but I was
under the impression that for C++ apps building a DLL in mingw, it should be
exported as __declspec(dllexport) (just like MS does it in Visual Studio).
But I could most definitely be wrong.  Then, when you're importing them into
an application via the dll's .lib file, you just change that to
__declspec(dllimport).  Usually, this is handled in the form of macros.  As
for __stdcall, I thought that was for standard c functions like what
*should* be in the libmysqlclient.dll.  The confusing part about all of this
is it basically is just a way of determining name mangling in the function
names inside of the dll, and the way that parameters are passed between
functions.

Ugh.

Any way Warren or Chris could enlighten us and clear any of this up?

-----Original Message-----
From: Death Gauge [mailto:clay_hg@stripped] 
Sent: Thursday, December 29, 2005 11:30 PM
To: plusplus@stripped
Subject: RE: [MySQL++]Good/Bad News:MinGW Support

I was about to include the method to get it to compile that worked for me 
but I ran into problems when I tried to compile the examples with the 
DLL/LIB. Somewhere in the code there should be virtuals __stdcall 
function(); in the headers so that it can pull them out of the DLL but I 
can't find any. I'm stumped at what to do cause the DLL/LIB compiled fine 
and then it oddly does this with compiling the examples because it can't 
find he part to read from the DLL to work. Any ideas?

C:\mysqlpp\examples>make
g++ -L..\lib\debug       debug/resetdb.o  debug/util.o -odebug/resetdb.exe 
-lmys
qlpp -lmysqlclient
debug/resetdb.o(.text$_ZN7mysqlpp5QueryD1Ev[mysqlpp::Query::~Query()]+0x39):
rese
tdb.cpp: undefined reference to `vtable for mysqlpp::Query'
debug/resetdb.o(.text$_ZN7mysqlpp5QueryD1Ev[mysqlpp::Query::~Query()]+0x48):
rese
tdb.cpp: undefined reference to `vtable for mysqlpp::Query'
debug/resetdb.o(.text$_ZN7mysqlpp5QueryD1Ev[mysqlpp::Query::~Query()]+0x57):
rese
tdb.cpp: undefined reference to `vtable for mysqlpp::Query'
debug/resetdb.o(.text$_ZN7mysqlpp5QueryD1Ev[mysqlpp::Query::~Query()]+0x63):
rese
tdb.cpp: undefined reference to `vtable for mysqlpp::Query'
debug/resetdb.o(.text$_ZN7mysqlpp5QueryD1Ev[mysqlpp::Query::~Query()]+0x21a)
:res
etdb.cpp: undefined reference to `VTT for mysqlpp::Query'
debug/resetdb.o(.text$_ZN7mysqlpp5QueryD1Ev[mysqlpp::Query::~Query()]+0x240)
:res
etdb.cpp: undefined reference to `VTT for mysqlpp::Query'
debug/util.o(.text$_ZN7mysqlpp4DateD1Ev[mysqlpp::Date::~Date()]+0xb):util.cp
p: 
u
ndefined reference to `vtable for mysqlpp::Date'
debug/util.o(.text$_ZN7mysqlpp4DateC1ERKNS_12ColData_TmplINS_12const_stringE
EE[m
ysqlpp::Date::Date(mysqlpp::ColData_Tmpl<mysqlpp::const_string> 
const&)]+0x45):u
til.cpp: undefined reference to `vtable for mysqlpp::Date'
debug/util.o(.text$_ZN7mysqlpp3RowC1Ev[mysqlpp::Row::Row()]+0x5b):util.cpp: 
unde
fined reference to `vtable for mysqlpp::Row'
debug/util.o(.text$_ZN7mysqlpp3RowC1Ev[mysqlpp::Row::Row()]+0x67):util.cpp: 
unde
fined reference to `vtable for mysqlpp::Row'
collect2: ld returned 1 exit status
make: *** [resetdb.exe] Error 1






--Death Gauge
"How do you gauge your death?!"




----Original Message Follows----
From: "Patrick McMichael" <p.s.mcmichael@stripped>
To: <plusplus@stripped>
Subject: RE: [MySQL++]Good/Bad News:MinGW Support
Date: Thu, 29 Dec 2005 23:01:33 -0500

I'm pretty sure it's looking for the mysql client library,
libmysqlclient.dll (which ships with mysql), and that the function
mysql_more_results is a C function in that library.  Unfortunately, I'm not
sure how you would link to that instead, since with all the building I've
done, it's been automatically setup to link to libmysqlclient.dll (or at
least the corresponding .lib).

BTW, how'd you get it to compile?

Make sure to let us know if you get this working!  It would be SWEET.

-Patrick

-----Original Message-----
From: Death Gauge [mailto:clay_hg@stripped]
Sent: Thursday, December 29, 2005 9:16 PM
To: plusplus@stripped
Subject: [MySQL++]Good/Bad News:MinGW Support

Good News: Got the lib to compile and the dll to work and the examples to
compile with not a single error/warning/or problem.

Bad News: The examples all return an error saying "The procedure entry point

mysql_more_results could not be located in the dynamic link library
LIBMYSQL.dll."

Any ideas for fixing this problem?

--Death Gauge
"How do you gauge your death?!"

_________________________________________________________________
Don't just search. Find. Check out the new MSN Search!
http://search.msn.click-url.com/go/onm00200636ave/direct/01/


--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?unsub=1




--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:    http://lists.mysql.com/plusplus?unsub=1

_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/


-- 
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?unsub=1



Thread
[MySQL++]Good/Bad News:MinGW SupportDeath Gauge30 Dec
  • RE: [MySQL++]Good/Bad News:MinGW SupportPatrick McMichael30 Dec
    • RE: [MySQL++]Good/Bad News:MinGW SupportDeath Gauge30 Dec
      • RE: [MySQL++]Good/Bad News:MinGW SupportPatrick McMichael30 Dec
        • Re: [MySQL++]Good/Bad News:MinGW SupportChris Frey3 Jan
        • Re: [MySQL++]Good/Bad News:MinGW SupportWarren Young3 Jan