Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-6270

static linking doesn't work in Symbian

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • Icon: P3: Somewhat important P3: Somewhat important
    • None
    • 3.x
    • Build tools: Other
    • None
    • Nokia N97 SDK

      Trying create static configuration by running configure -static will generate .lib files that are correct size.
      Any application linking to these libraries will fail as the resulted MMP file doesn't have any LIBRARY/STATICLIBRARY statements and thus cannot be linked.

      steps to reproduce:

      configure -platform win32-msvc2008 -xplatform symbian-abld -static
      make debug-winscw
      or
      make release-armv5/6

      all examples and demos will fail to link with errors looking like this:

      mwldsym2.exe: warning: Multiply defined symbol: ___get_MSL_init_count in
      mwldsym2.exe: warning: files uc_cwhelp.obj (EEXE.LIB), startup.win32.c.obj (msl_
      all_static_mse_symbian_d.lib),
      mwldsym2.exe: warning: keeping definition in startup.win32.c.obj
      mwldsym2.exe: warning: Multiply defined symbol: __CleanUpMSL in
      mwldsym2.exe: warning: files uc_cwhelp.obj (EEXE.LIB), startup.win32.c.obj (msl_
      all_static_mse_symbian_d.lib),
      mwldsym2.exe: warning: keeping definition in startup.win32.c.obj
      mwldsym2.exe: Undefined symbol: 'void QTextStream::setFieldWidth(int) (?setField
      Width@QTextStream@@QAEXH@Z)'
      mwldsym2.exe: referenced from '.data' in dialog.o
      mwldsym2.exe: referenced from '.data' in wigglywidget.o
      mwldsym2.exe: Undefined symbol: 'void QTextStream::setPadChar(class QChar) (?set
      PadChar@QTextStream@@QAEXVQChar@@@Z)'
      mwldsym2.exe: referenced from '.data' in dialog.o
      mwldsym2.exe: referenced from '.data' in wigglywidget.o
      mwldsym2.exe: Undefined symbol: 'void QTextStream::setRealNumberPrecision(int) (
      ?setRealNumberPrecision@QTextStream@@QAEXH@Z)'
      mwldsym2.exe: referenced from '.data' in dialog.o
      mwldsym2.exe: referenced from '.data' in wigglywidget.o
      mwldsym2.exe: Undefined symbol: 'struct QMetaObject const QWidget::staticMetaObj
      ect (?staticMetaObject@QWidget@@2UQMetaObject@@B)'
      mwldsym2.exe: referenced from '.rdata' in moc_wigglywidget.o
      mwldsym2.exe: Undefined symbol: 'struct QMetaObject const QDialog::staticMetaObj
      ect (?staticMetaObject@QDialog@@2UQMetaObject@@B)'
      mwldsym2.exe: referenced from '.rdata' in moc_dialog.o
      mwldsym2.exe: Undefined symbol: 'int UserHeap::SetupThreadHeap(int, struct SStdE
      pocThreadCreateInfo &) (?SetupThreadHeap@UserHeap@@SAHHAAUSStdEpocThreadCreateIn
      fo@@@Z)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:68 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'void User::InitProcess(void) (?InitProcess@User
      @@SAXXZ)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:74 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'int Exec::SetWin32RuntimeHook(void *) (?SetWin3
      2RuntimeHook@Exec@@SAHPAX@Z)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:78 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'int E32Main(void) (?E32Main@@YAHXZ)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:83 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'void User::Exit(int) (?Exit@User@@SAXH@Z)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:88 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'void User::HandleException(void *) (?HandleExce
      ption@User@@SAXPAX@Z)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:92 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'void User::Invariant(void) (?Invariant@User@@SA
      XXZ)'
      mwldsym2.exe: referenced from '__E32Startup' in uc_exe.cpp:95 (EEXE.LIB)
      mwldsym2.exe: Undefined symbol: 'void BootEpoc(int) (?BootEpoc@@YAXH@Z)'
      mwldsym2.exe: referenced from 'void _E32Bootstrap(void) (?_E32Bootstrap@@YGXXZ)'
      in uc_exe.cpp:104 (EEXE.LIB)

      Errors caused tool to abort.
      make[2]: *** [\S60\devices\Nokia_N97_SDK_v1.0\epoc32\release\winscw\udeb\wiggly.
      exe] Error 1
      make[1]: *** [TARGETWIGGLY_0XA000C607] Error 2
      make[1]: Leaving directory `C:/repos/qt/examples/widgets/wiggly'
      make -r -f "\S60\devices\Nokia_N97_SDK_v1.0\EPOC32\BUILD\repos\qt\examples\wi
      dgets\wiggly\WINSCW.make" FINAL CFG=UDEB VERBOSE=-s
      make[1]: Entering directory `C:/repos/qt/examples/widgets/wiggly'
      make -s -C \repos\qt\examples\widgets\wiggly -f "MAKEFILE_0XA000C607.MK" TO_ROO
      T=..\..\..\..\.. EPOCBLD=\S60\devices\Nokia_N97_SDK_v1.0\EPOC32\BUILD\MAKEFILE_0
      XA000C607\WINSCW TO_BLDINF=..\..\..\..\..\repos\qt\examples\widgets\wiggly PLATF
      ORM=WINSCW CFG=UDEB FINAL

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            qtsymbase Qt Base for Symbian Team
            e0150566 Janne Roine
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes