List:MySQL++« Previous MessageNext Message »
From:Thomas Werth Date:August 19 2005 6:47am
Subject:Re: problems using mysql++ > 2.0.0
View as plain text  
Hi Warren,

My described Bug was related to the way studio differs between executing
and debugging an application.
While execute works fine, in debug heap is specially tracked. So All
linked dll's need to be special debug dll's. Which in case of mysqlpp
was not given.
I figured out how to set up makefile.vc to produce a mysqlppd.lib and
mysqlppd.dll for use in debug version of linked app.

Here's snippelt, path need to be adapted :

CXXFLAGS=/IF:\dev\cpp\addins\mysql-4.1.10-win32\include /I"lib" /Od
/DWIN32 /D_LIB /D_MBCS /D_DEBUG /DMYSQLPP_MAKING_DLL /D_WINDLL /G7 \
		/EHsc /nologo /MDd /c /ZI /TP
LDFLAGS=/OUT:$(LIB_FILE) /DLL /NOLOGO
"F:\dev\cpp\addins\mysql-4.1.10-win32\lib\debug\libmysqld.lib"
INST_DIR=F:\dev\Projekte\cpp\mysqlpp\vc


Still INST_DIR Var seems to be useless cause no "vc" is created ...

maybe you can include in next distribution some kind of my appended
makefile so users simply can rename between release and Debug makefiles
whereas release may stay as default.

greetings
tom

Warren Young schrieb:
> Thomas Werth wrote:
> 
>> First when running "makemake.bat vc" i get an error "make.bat not found".
> 
> 
> Sorry, make.bat was accidentally left out of the distribution.
> 
>> Using mysqlpp as dll in release version of my project seem to run fine.
>> Unfortunately in debug it always crashes when a local var ( like Query )
>> is destructed. It  throws an assertion using internal debug func
>> "_CrtIsValidHeapPointer".
> 
> 
> Please help me debug this.  I don't use Visual C++ with MySQL++
> personally (I have it here for other reasons), so there's a limit to how
> much effort I'm willing to put into this myself.
> 
>> Unfortunately no vc subdir is created.
> 
> 
> There are several errors in the makemake system when using cmd.exe.  I
> tested under a different command shell, and didn't realize that there
> were so many differences between the two.  I'll release v2.0.2 soon to
> fix this and the make.bat problem.
> 
>> How do i tell makefile to create a debug version of lib ?
> 
> 
> cl /?
> 

-- 
MFG
Thomas Werth

Tel.: 02307 / 704 - 366
---------------------------------------------------------------------

Paul Vahle GmbH & Co. KG              URL       : http://www.vahle.de
Westicker Strasse 52  D-59174 Kamen   E-Mail    : thomas.werth@stripped
---------------------------------------------------------------------


## This file contains the 'make' rules specific to Visual C++.  The
## ../makemake.bat script prepends this to Makefile.base to create a
## complete Makefile.

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with MySQL++; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA

CXX=cl
CXXFLAGS=/IF:\dev\cpp\addins\mysql-4.1.10-win32\include /I"lib" /Od /DWIN32 /D_LIB /D_MBCS
/D_DEBUG /DMYSQLPP_MAKING_DLL /D_WINDLL /G7 \
		/EHsc /nologo /MDd /c /ZI /TP

LIB_BASE=mysqlppd
LIB_FILE=$(LIB_BASE).dll
IMP_FILE=$(LIB_BASE).lib
LD=link
LDFLAGS=/OUT:$(LIB_FILE) /DLL /NOLOGO
"F:\dev\cpp\addins\mysql-4.1.10-win32\lib\debug\libmysqld.lib"

EXTRA_CLEAN=$(IMP_FILE) *.ext

INST_DIR=F:\dev\Projekte\cpp\mysqlpp\vc
INST_INC_DIR=$(INST_DIR)\include
INST_LIB_DIR=$(INST_DIR)\lib

OBJ=obj
EXE=exe
DEL=del /q


.SUFFIXES: .cpp .obj
.cpp.obj:
	$(CXX) $(CXXFLAGS) $<


vc: all

install_platform:
	@if not exist $(INST_DIR) mkdir $(INST_DIR)
	@if not exist $(INST_INC_DIR) mkdir $(INST_INC_DIR)
	@if not exist $(INST_LIB_DIR) mkdir $(INST_LIB_DIR)
	copy *.h "$(INST_INC_DIR)" > NUL
	copy *.dll "$(INST_LIB_DIR)" > NUL
	copy *.lib "$(INST_LIB_DIR)" > NUL


Thread
problems using mysql++ > 2.0.0Thomas Werth18 Aug
  • Re: problems using mysql++ > 2.0.0Warren Young18 Aug
    • Re: problems using mysql++ > 2.0.0Thomas Werth19 Aug
      • Re: problems using mysql++ > 2.0.0Warren Young19 Aug
Re: problems using mysql++ > 2.0.0Thomas Werth18 Aug
  • Re: problems using mysql++ > 2.0.0Warren Young18 Aug