1.8 win32 compile fixes

Nick Shaforostoff shafff at ukr.net
Wed Jul 25 16:18:53 UTC 2012


also i'm getting the following errors when linking my application statically with taglib:

mainwindow.obj : error LNK2019: unresolved external symbol "public: unsigned short & __thiscall TagLib::String::operator[](int)" (??AString at TagLib@@QAEAAGH at Z) referenced in function "class QString __cdecl t2q(class TagLib::String)" (?t2q@@YA?AVQString@@VString at TagLib@@@Z)

mainwindow.obj : error LNK2019: unresolved external symbol "public: __thiscall TagLib::String::String(class std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> > const &,enum TagLib::String::Type)" (??0String at TagLib@@QAE at ABV?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@W4Type at 01@@Z) referenced in function "class TagLib::String __cdecl q2t(class
QString const &)" (?q2t@@YA?AVString at TagLib@@ABVQString@@@Z)

fatal error LNK1120: 2 unresolved externals


can you possibly tell me what might have changed since 1.7.2 release? it compiles fine with 1.7.2.
i've built both versions of taglib with the same cmake config cmd line. i'm using vs2005.


t2q() and q2t() are the functions i wrote to convert betwen qstring and tstring to avoid UTF16->UTF8->UTF16 conversion when using standard proposed conversion functions

QString t2q(TagLib::String t)
{
    QString q; q.resize(t.size());
    for(int i=0;i<q.size();i++)
        q[i]=t[i];
    return q;
}

TagLib::String q2t(const QString& q)
{
    return TagLib::String(q.toStdWString());
}


More information about the taglib-devel mailing list