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

Failed to link with system-icu

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P2: Important
    • None
    • 5.9.0
    • Build tools: qmake
    • None
    • Windows 10 x64 Creator Updates, Visual Studio 2017 15.2 x64

    Description

      Why do the icu detection had to changed?, now it always failed to link with system-icu,

       

      Checking for ICU... 
      Trying source 0 (type inline) of library icu ...
      => source failed condition 'config.win32 && !features.shared'.
      Trying source 1 (type inline) of library icu ...
      + cd /d C:\QT-Build\msvc2017_64\qtbase\config.tests\unix\icu && C:\QT-Build\msvc2017_64\qtbase\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared console single_arch" "QMAKE_LIBDIR += C:\\Dev\\dependencies\\sqlite3\\lib C:\\Dev\\postgresql\\x64\\lib C:\\Dev\\mysql\\x64\\lib C:\\Dev\\dependencies\\zlib\\lib C:\\Users\\nameless\\Documents\\Works\\Compiling\\jpeg-9b C:\\Users\\nameless\\Documents\\Works\\Deps\\x64\\VS2017\\libpng\\Static\\Release\\lib" "INCLUDEPATH += C:\\Dev\\dependencies\\sqlite3\\include C:\\Dev\\postgresql\\x64\\include C:\\Dev\\mysql\\x64\\include C:\\Dev\\dependencies\\zlib\\include C:\\Users\\nameless\\Documents\\Works\\Compiling\\jpeg-9b C:\\Users\\nameless\\Documents\\Works\\Deps\\x64\\VS2017\\libpng\\Static\\Release\\include" "LIBS += -licuin -licuuc -licudt" C:/QT-Build/qt-everywhere-opensource-src-5.9/qtbase/config.tests/unix/icu
      + cd /d C:\QT-Build\msvc2017_64\qtbase\config.tests\unix\icu && set MAKEFLAGS=& nmake
      > Microsoft (R) Program Maintenance Utility Version 14.10.25019.0
      > Copyright (C) Microsoft Corporation. All rights reserved.
      > cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc /Fdicu.vc.pdb -DUNICODE -DWIN32 -DWIN64 -IC:\QT-Build\qt-everywhere-opensource-src-5.9\qtbase\config.tests\unix\icu -I. -IC:\Dev\dependencies\sqlite3\include -IC:\Dev\postgresql\x64\include -IC:\Dev\mysql\x64\include -IC:\Dev\dependencies\zlib\include -IC:\Users\nameless\Documents\Works\Compiling\jpeg-9b -IC:\Users\nameless\Documents\Works\Deps\x64\VS2017\libpng\Static\Release\include -IC:\QT-Build\qt-everywhere-opensource-src-5.9\qtbase\mkspecs\win32-msvc -Fo @C:\Users\nameless\AppData\Local\Temp\nm611F.tmp
      > icu.cpp
      > link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:icu.exe @C:\Users\nameless\AppData\Local\Temp\nm6353.tmp
      > icu.obj : error LNK2019: unresolved external symbol ucol_open_58 referenced in function main
      > icu.obj : error LNK2019: unresolved external symbol ucol_close_58 referenced in function main
      > icu.exe : fatal error LNK1120: 2 unresolved externals
      > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\link.EXE"' : return code '0x460'
      > Stop.
      => source failed verification.
      Trying source 2 (type inline) of library icu ...
      => source failed condition '!config.win32'.
      test config.corelib.libraries.icu FAILED
      
      Checking for icu >= 53... 
      Trying source 0 (type pkgConfig) of library icu ...
      pkg-config use disabled globally.
      => source produced no result.
      test config.qtwebengine.libraries.icu FAILED
      

       

      From the qtbase/config.tests/unix/icu/icu.pro

       

      SOURCES = icu.cpp
      CONFIG += console
      CONFIG -= qt dylib
      
      CONFIG += build_all
      CONFIG(debug, debug|release): \
          LIBS += $$LIBS_DEBUG
      else: \
          LIBS += $$LIBS_RELEASE
      

      Where do $$LIBS_RELEASE and $$LIB_DEBUG getting the variables?

      Old one looks more proper : 

      win32 {
          CONFIG(static, static|shared) {
              CONFIG(debug, debug|release) {
                  LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd
              } else {
                  LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt
              }
          } else {
              LIBS_PRIVATE += -licuin -licuuc -licudt
          }
      } else {
          LIBS_PRIVATE += -licui18n -licuuc -licudata
      }
      

       

       

       

      Attachments

        Issue Links

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

          Activity

            People

              buddenha Oswald Buddenhagen
              echelon Aditya Nugraha
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes