Boost logo

Boost :

From: Stefan Slapeta (stefan_at_[hidden])
Date: 2004-07-21 16:41:04


> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of Michael Stevens
>
>
> > Did you see the __declspec(dllimport)? Should this be ok?
> >
> > test21.obj : error LNK2019: unresolved external symbol
> > "__declspec(dllimport) public: __thiscall
> > std::complex<float>::complex<float>(class
> std::complex<float> const &)" etc.
> >
> > test21.obj : error LNK2019: unresolved external symbol
>
>

I've found the reason for this: /MDd
This is for the runtime and means "Multithreaded Debug DLL". If you just use
"Multithreaded Debug" (/MTd), everything works fine! Can anybody tell me the
intention behind testing uBLAS with the shared runtime? (Maybe this is the
default because some other libraries need it...)

Anyway, it seems to be a bug of the Intel Compiler but I have not been able
to reproduce this in a simple test case. The responsible lines are:

    t = ublas::blas_1::dot (v1, v2);
    t = ublas::blas_1::dot (ublas::conj (v1), v2);

Intel seems to get confused with the return type of inner_prod.

> > "C:\Programme\Intel\CPP\Compiler80\Ia32\bin\icl"  /Zm800
> -nologo -GX
> > -c -DBOOST_UBLAS_USE_INTERVAL  /Z7 /Od /Ob0 /GX /GR /MDd /Op  
> > /Zc:forScope /Zc:wchar_t /Qwn5 /Qwd985 -Qoption,c,--arg_dep_lookup
> > /Qansi_alias -D_NATIVE_WCHAR_T_DEFINED /Qvc7.1
>
> I am really guessing here as I don't have manuals! The /Z7
> and /Qv7.1 look interesting.
> I think the /Z7 is specifying old style debug symbols which
> is a bit odd. I guess they are usually smaller then the "edit
> and continue" symbols.

/Z7 ... Produce symbolic debug information in object file (=C7 format)
/Qv7.1 ... Enables compatibility with Visual C++ .NET* 2003

>
> /Qv7.1 I assume is enabling VC 7.1 compatibility bugs and
> all. I guess this adds a few extra bugs of Intels own. I not
> sure why the default build options for boost have this in.
> Anyone know?
> Do you think it would be appropriate to do the regression
> testing in the compilers native mode?
>

I think this is no good idea. Intel always hat set /Qv7.1 after the
installation as default. And, building Test7 fails with the same error also
without this option.

BTW, you can't build test7 (I didn't try the others) on any compiler if you
don't set DBOOST_UBLAS_USE_INTERVAL.
Is this intended?

Stefan


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk