[petsc-users] Petsc compilation with -MDd using visual studio c++ 2008
Mengda Wu
wumengda at gmail.com
Mon Aug 11 08:24:00 CDT 2014
Hi Satish,
I think this problem happens in the latest 3.5.1 version. On windows 7
with VS2012, I configured with (under Cygwin):
./config/configure.py --with-cc='cl' --with-fc=0 --with-cxx='cl'
--with-mpi=0 --with-debugging=1
--download-f2cblaslapack=/cygdrive/d/Library/PETSc/download/f2cblaslapack-3.4.2.q1.tar.gz
--with-sowing=0 --with-c2html=0 -CFLAGS='-MDd -wd4996' -CXXFLAGS='-MDd
-wd4996'
After configure, in
petsc-3.5.1\arch-mswin-c-debug\externalpackages\f2cblaslapack-3.4.2.q1
CC = /cygdrive/d/Library/PETSc/petsc-3.5.1/bin/win32fe/win32fe cl
COPTFLAGS = -MDd -wd4996 -Z7
CNOOPT = -MD
So CNOOPT does not get correct "-MDd", which causes the VC dll mismatch
after compilation of Petsc debug. There was no problem with petsc-3.4.3. I
am trying to upgrade to 3.5.1 and the problem came out. Could you please
take a look?
Thanks,
Mengda
On Sun, Dec 18, 2011 at 2:14 PM, Satish Balay <balay at mcs.anl.gov> wrote:
> On Sun, 18 Dec 2011, Mengda Wu wrote:
>
> > Hi all,
> >
> > I am trying to compile with a debug version of Petsc with -MDd options
> > using visual studio c++ 2008. The following options are used.
> >
> > ./config/configure.py --with-cc='cl' --with-fc=0 --with-cxx='cl'
> > --with-mpi=0 --with-debugging=1
> > --download-f2cblaslapack=/path/to/f2cblaslapack-3.1.1.q.tar.gz
> > -CFLAGS='-MDd -wd4996' -CXXFLAGS='-MDd -wd4996'
> >
> > But it seems that f2cblaslapack does not recognize "-MDd" completely.
> Some
> > files are still compiled with '-MD' instead of "-MDd". This will lead to
> a
> > problem that not all libraries are linked with the same MS C library. I
> > think it may be caused by the variable "CNOOPT" is not set properly in
> > config/BuildSystem/config/packages/f2cblaslapack.py and
> > config/BuildSystem/config/packages/BlasLapack.py. Only '-MD' is present
> > there. See
> >
> > def getWindowsNonOptFlags(self,cflags):
> > for flag in ['-MT','-MTd','-MD','-threads']:
> > if cflags.find(flag) >=0: return flag
> > return ''
> >
> > If I substitute '-MD' with '-MDd', then it works. But this will lead to
> > problem when '-MD' is preferred.
> >
>
> You can just add 'MDd' to that list.
>
> i.e
>
> for flag in ['-MT','-MTd','-MD','-MDd','-threads']:
>
> Will add this for the next patch update to petsc-3.2
>
> Satish
>
> > I am wondering if anyone can fix this problem.
> >
> > Thanks,
> > Mengda
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140811/ff4b3077/attachment.html>
More information about the petsc-users
mailing list