Ich habe jetzt fast eine Woche lang versucht, unter Windows und VC ++ als STATIC-Bibliotheken unter x86-System eine zuverlässige boost + ICU-Bibliothek aufzubauen (also brauche ich keine Runtime-DLLs wenn). Ich brauche meistens Boost-Regex mit Unicode-Unterstützung und boost.locale.icu. Eine zuverlässige Lösung (nicht auf Boost-Site oder ICU) konnte dazu nicht überall im Internet gefunden werden. Erprobtes Bauen mit VC ++, Cygwin + VC ++, aber bisher kein Erfolg. Irgendwelche Hilfe von der Erfahrung? Oder, das schlechtere Szenario, jede ICU vor dem Build statisch + statische Pakete erhöhen?
Nachdem ich ICU statisch aufgebaut habe, konfiguriert unter Cygwin:
%Vor%hat folgende statische Bibliotheken:
%Vor%Ich habe den Boost als Statik gegen ICU-Bibliotheken aufgebaut:
%Vor%Wenn ich einen einfachen Code ausprobiere, bekomme ich ungelöste Symbole, also stimmt etwas mit meinen kompilierten Bibliotheken nicht:
%Vor%Ich habe nicht vergessen, das statische Flag für ICU in meinem Code hinzuzufügen:
%Vor%UPDATE:
baute alle ICU und Boost statische auf, jetzt habe ich nur einen Fehler Link:
%Vor%Sie bauen den richtigen Weg. Das Problem ist, dass das Boost.Locale-Build-System anscheinend keinen Code zum Erkennen der statischen ICU-Bibliotheken hat und daher selbst dann, wenn Sie alle korrekten Parameter einstellen, die Bibliotheken nicht wie erwartet aufnimmt. Wenn Sie diese Dateien überprüfen:
%Vor%Sie werden feststellen, dass anscheinend kein Code für sicuXX.XXX-Dateien vorhanden ist. Ich denke, das könnte das Problem sein.
Es gibt eine Feature-Anfrage dafür auf dem Boost-Bug-Tracker: Ссылка
Es kann hilfreich sein, wenn mehr Leute Interesse daran zeigen, dass dies implementiert wird.
Ich darf noch nicht kommentieren, also gebe ich meinen Kommentar als Antwort (Entschuldigung für die Unannehmlichkeiten), denn ich kämpfe mit genau dem gleichen Problem. Ich habe folgende Testdatei gefunden:
%Vor%mit diesen Codezeilen:
%Vor%Vielleicht (zumindest unter Windows) ist ein statischer Boost mit ICU-Kompilierung nicht möglich?