firebase / firebase/firebase-cpp-sdk

[Bug] Windows Server 2016+2019 missing icu.dll

Offen
#1,541 2 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
needs-triage new type: question
Vorherrschende Sprache
C++
Sterne
326
Forks
137
Ø Merge
3 T. 9 Std.
Gemergte PRs (30 T.)
5

Beschreibung

### [REQUIRED] Please fill in the following fields:

Since https://github.com/firebase/firebase-cpp-sdk/pull/1332, support for Windows Server 2016+2019 was broken due to a new dependency on icu.dll, which is only available on Windows 10, Windows 11, and Windows Server 2022.

### [REQUIRED] Please describe the issue here:

Two symbols are now imported from icu.dll (ucal_getTimeZoneIDForWindowsID and u_errorName). The relevant code is in [app/src/locale.cc](https://github.com/firebase/firebase-cpp-sdk/blob/3fd90d5d8a98da064e847a0dd44e3dae9407e8e8/app/src/locale.cc#L150).

#### Steps to reproduce:

Build for Windows, try running on Windows Server 2016 or 2019, hit the following issue:

![image](https://github.com/firebase/firebase-cpp-sdk/assets/295841/229aa3ec-4bae-4645-be1d-76fc00892e7d)

#### Relevant Code:

The imported function is only used for time zone id mapping, the code should be modified to either use a different Windows API, or try loading icu.dll dynamically (LoadLibrary+GetProcAddress) with a proper fallback when the DLL and function is absent.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.