ClassCreator_TypeID Linker error

2 views
Skip to first unread message

Coen

unread,
Nov 30, 2011, 4:37:13 PM11/30/11
to v8-juice-js-dev
I seem to be getting the following linker errors binding some classes
when linking with MSVC 2010:

error LNK2001: unresolved external symbol "public: static void const *
const cvv8::ClassCreator_TypeID<class ScriptContext>::Value" (?Value@?
$ClassCreator_TypeID@VScriptContext@@@cvv8@@2PBXB)

it seems that the code:
template <typename T>
const void * ClassCreator_TypeID<T>::Value = TypeName<T>::Value;

isn't always properly working in MSVC (I think this happened before
when trying to get MSCV stuff working? not sure). Oddly it seems to
work for some other classes though I can't really find much
difference.

Stephan Beal

unread,
Dec 4, 2011, 1:41:36 PM12/4/11
to v8-juic...@googlegroups.com
On Wed, Nov 30, 2011 at 10:37 PM, Coen <coen.c...@gmail.com> wrote:
I seem to be getting the following linker errors binding some classes
when linking with MSVC 2010:

Hi, Coen!

My apologies for the late response. i was offline for a week or so and still haven't gotten through my backlog.
 
   template <typename T>
   const void * ClassCreator_TypeID<T>::Value = TypeName<T>::Value;

isn't always properly working in MSVC (I think this happened before
when trying to get MSCV stuff working? not sure). Oddly it seems to
work for some other classes though I can't really find much
difference.

i've never quite been happy with the TypeID class because i was fairly certain it would result in linking problems on MSVC somewhere along the way :/. In fact that class is basically a kludge, but i don't remember right this moment why i needed to add it (instead of using TypeName directly).

i don't have a solution to the problem at the moment, and probably can't commit any time to it until the holidays, but i'm all ears if you've got an idea about how to solve it.

--
----- stephan beal
http://wanderinghorse.net/home/stephan/

Coen

unread,
Dec 4, 2011, 1:49:42 PM12/4/11
to v8-juice-js-dev

On Dec 4, 7:41 pm, Stephan Beal <sgb...@googlemail.com> wrote:


> On Wed, Nov 30, 2011 at 10:37 PM, Coen <coen.camp...@gmail.com> wrote:
> > I seem to be getting the following linker errors binding some classes
> > when linking with MSVC 2010:
>
> Hi, Coen!
>
> My apologies for the late response. i was offline for a week or so and
> still haven't gotten through my backlog.

No problem :)

>
> >    template <typename T>
> >    const void * ClassCreator_TypeID<T>::Value = TypeName<T>::Value;
>
> > isn't always properly working in MSVC (I think this happened before
> > when trying to get MSCV stuff working? not sure). Oddly it seems to
> > work for some other classes though I can't really find much
> > difference.
>
> i've never quite been happy with the TypeID class because i was fairly
> certain it would result in linking problems on MSVC somewhere along the way
> :/. In fact that class is basically a kludge, but i don't remember right
> this moment why i needed to add it (instead of using TypeName directly).
>
> i don't have a solution to the problem at the moment, and probably can't
> commit any time to it until the holidays, but i'm all ears if you've got an
> idea about how to solve it.

I'll look into it, I'll probably just try to remove the class from
v8convert and see if I can get it to work that way since it's a kludge
anyway.
If i come up with anything I'll mail you a diff ^_^ not sure how much
time I can spend on it but we'll see.

Reply all
Reply to author
Forward
0 new messages