Boost logo

Boost Users :

From: Martin Zeng (MZeng_at_[hidden])
Date: 2007-05-09 22:11:56


Hi John,

Thanks for you help, and now my MFC is compiling without the link error.
There are still some things I would still like to know.

I noticed that just by including the libs/regex/src/winstances.cpp file
is enough to get rid of the the error
>LNK2005: "public: static unsigned int __cdecl
> std::char_traits<unsigned short>::length(unsigned short const *)"
> (?length@?$char_traits_at_G@std@@SAIPBG_at_Z) already defined in
> msvcprtd.lib(MSVCP71D.dll)

so I was just wondering is it ok just to add only the winstances.cpp to
my source directory as opposed to adding the entire libs/regex/src
directory?

I ask this because my static library was created with using stdafx.h
(precompiled header), so I had to copy over the winstances.cpp file into
my project directory and put in #include "stdafx.h" at the top as
opposed to just referring to the libs/regex/src/winstances.cpp file
directly. I prefer not to do this to every single file in the
libs/regex/src directory if I don't need to include them anyway.

Also, what is the cause of this link error. Does it have anything to do
with VC++ compiler and how it ignores inline directives in debug mode as
this person seems to suggest:
http://aspn.activestate.com/ASPN/Mail/Message/2509074

In my experience, it seems that by having:
boost::wregex expression(L"[ab]");
will cause the link error to happen. Is there going to be a fix for this
problem?

Regards,
Martin

-----Original Message-----
From: boost-users-bounces_at_[hidden]
[mailto:boost-users-bounces_at_[hidden]] On Behalf Of John Maddock
Sent: Tuesday, 8 May 2007 6:47 PM
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] Having trouble including
mystaticlibrary(whichuses regex) in my MFC app

Martin Zeng wrote:
> I cannot compile my MFC app in Multibyte, it must be in Unicode, also
> when I use wchar_t as built in type I get other link errors. So, I'm
> trying to attempt building the regex lib without the /Zc:wchar_t as
> you have suggested. But I'm not sure how to do this. Can you please
> help me?

The regex lib is "just a bunch of source files", so create a new static
lib
project in your IDE, set the appropriate build options, and add the
regex
source (in libs/regex/src) to it. Unless you name the resulting lib the

same way that our auto-linking code expects then you will need to turn
off
auto-linking support in your app by defining BOOST_REGEX_NO_LIB when
building, then add a dependency to the static regex lib to your apps IDE

project.

HTH, John.

_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users

--
This email is from Civica Pty Limited and it, together with 
any attachments, is confidential to the intended recipient(s) 
and the contents may be legally privileged or contain 
proprietary and private information. It is intended solely 
for the person to whom it is addressed. If you are not an 
intended recipient, you may not review, copy or distribute 
this email. If received in error, please notify the sender 
and delete the message from your system immediately. Any 
views or opinions expressed in this email and any files 
transmitted with it are those of the author only and may 
not necessarily reflect the views of Civica and do not create 
any legally binding rights or obligations whatsoever. Unless 
otherwise pre-agreed by exchange of hard copy documents 
signed by duly authorised representatives, contracts may not 
be concluded on behalf of Civica by email. Please note that 
neither Civica nor the sender accepts any responsibility for 
any viruses and it is your responsibility to scan the email 
and the attachments (if any). All email received and sent by 
Civica may be monitored to protect the business interests of 
Civica. 

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net