stdcxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nadine Faizant" <nadine.faiz...@nautitia.fr>
Subject Re: error LNK2005 : VC8
Date Thu, 04 Jan 2007 11:15:25 GMT
Thanks, Martin.

I have search for deque instanciation... there is no deque in source file and include for
homoSyntagmaticConstraints.cpp.

I tried dumpbin as you suggest.

I find in graph library the source file that use deque objet.

I have used dumpbin on this obj file and I find this... which is suspect for me (there is
seceral deque export !), two examples :

   /EXPORT:??_F?$deque@IV?$allocator@I@std@@@std@@QAEXXZ
   /EXPORT:??0?$deque@IV?$allocator@I@std@@@std@@QAE@ABV?$allocator@I@1@@Z

This file should not export this object, isn't it ?

In homoSyntagmaticConstraints.obj there is no /EXPORT symbols...

Could you say me please if I'm wrong. I need to export class A from graph lib in order to
be use in other dll.

So, in graph lib I have a Class A which inherits of deque that I have declare as

Class DLLExportGraph : public B, public std::deque<C>

where DLLExportGraph is defined as 
#ifdef GRAPH_EXPORTS

#define DLLExportGraph _declspec (dllexport)

#else

#define DLLExportGraph _declspec (dllimport)

#endif

I know this is the correct syntax for non template class, perhaps there is something different
for template classes ?

    Thanks for your help,

            Nadine

PS : output file are so big (either compressed !) if you really need them I will send you


----- Original Message ----- 
From: "Martin Sebor" <sebor@roguewave.com>
To: <stdcxx-user@incubator.apache.org>
Sent: Wednesday, January 03, 2007 7:16 PM
Subject: Re: error LNK2005 : VC8


> Martin Sebor wrote:
>> Nadine Faizant wrote:
>>>
>>>    No is is a debug dynamic link (that the reason why I need a .lib 
>>> file...)
>> 
>> So Graph.lib is an archive library that uses/links with stdcxx,
>> correct? Does Graph.lib link against the stdcxx DLL or archive?
>> (The latter could be a likely cause of the problem.)
> 
> Okay, Graph is a DLL that uses the same stdcxx DLL as the DLL that
> gives the errors (SyntacticAnalysis.dll).
> 
> Since the error is issued for a couple of third party libraries
> (i.e., not stdcxx) I suspect it's a usage problem as opposed to
> one with stdcxx itself. Does either of the object files mentioned
> in the error message by any chance explicitly instantiate deque?
> 
> I think you'll need to some some digging into the object files
> (using dumpbin) to figure how the conflicting symbols are
> defined (they're all inline functions so it's puzzling that they
> should cause conflicts; we don't normally do 15d builds during
> our testing so you might want to try a 12d build instead -- that
> should optimize away inline functions). I would look for other
> inline member functions of class templates to see whether there
> is any difference. I'm in the process of moving my office so I
> won't be able to look into this in more detail until I'm done.
> 
> Martin
> 
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message