Ich versuche, Mingw-Binärdateien für Boost auf einem Linux-Rechner zu erstellen. Der Mingw-Compiler ist auf meinem System als / usr / bin / i586-mingw32msvc-g ++ vorhanden und ich konnte eine einfache HelloWorld.exe-Anwendung erstellen.
Hier ist eine genaue Liste meiner Aktionen:
%Vor%Das Ergebnis ist das:
%Vor% Es sagt, dass libicu nicht auf meinem System gefunden wird, aber laut Synaptic Package Manage habe ich das libicu-dev
-Paket installiert.
Ich bin nicht sicher, wie ich es richtig machen soll. Kann jemand helfen?
Folgt @ Lukes Empfehlung Ich jetzt gcc-mingw
toolset. Jetzt sehen meine Bauanleitungen so aus:
Was zu folgenden Fehlern führt:
%Vor% Ich habe auch versucht, gcc-mingw
in der user-config.jam
-Datei anzugeben. Dann sehen meine Bauanleitungen so aus:
Was zu:
führt %Vor% Angabe von g++-mingw
in der user-config.jam
-Datei:
... führt zum selben Fehler.
Ich habe ähnliche Fehlermeldungen erhalten. Schließlich konnte ich es mit genau den folgenden Befehlen kompilieren:
%Vor%Ich glaube, Ihr Problem besteht darin, dass Sie den Parameter "--user-config = user-config.jam" nicht angeben. Das nächste Problem, auf das ich stieß, war, dass es einen Namenskonflikt geben würde, wenn ich nicht entweder Debug oder Release Build spezifiziere (--layout = tagged oder --layout = versioned könnte auch funktionieren).
Das sind die Befehle, die ich verwende. Ich habe sie für Boost 1.46 und 1.49 getestet.
Um zu beginnen, erstellen Sie Links zum Compiler in / usr / i686-w64-mingw32 / bin. Sie können dieses Skript ausführen:
%Vor%Dann installiere bjam. Auf ubuntu / debian ist es im Paket "libboost1.48-dev"
enthalten %Vor%Um zu beenden, werden Sie root und führen Sie
aus %Vor%Fertig!
Ich hatte auch Schwierigkeiten damit, aber es scheint jetzt für mich zu funktionieren. Um es klar zu sagen, ich kompiliere unter Linux für Windows.
in user-config.jam:
%Vor%Beachten Sie, dass der zweite Ausdruck "mingw32" ein beliebiges "Version" -Tag ist. Das Toolset-Flag kombiniert den Compiler-Namen und den Versionsnamen mit einem Bindestrich. Also, in meinem Fall, gcc-mingw32. Der dritte Term ist das, was tatsächlich aufgerufen wird ("i686-w64-mingw32-g ++"). Offensichtlich hat Ihre Version des Mingw-Compilers möglicherweise einen anderen Namen.
So habe ich bjam aufgerufen:
%Vor%Ich habe alle interessanten Flaggen aus Congelli501's Antwort bekommen. Aber ich habe mich nicht mit dem Verzeichnis der Links Approach beschäftigt.
Wie Luke bereits erwähnt hat, wird toolset=gcc-mingw
sicherlich helfen.
Ihr libicu-dev
ist zu 99% sicher, dass die Header der Linux-Bibliothek nicht für Mingw gedacht sind. Sie müssen es entweder selbst erstellen oder von irgendwo her bekommen (könnte Ihre Distribution sein, ansonsten müssen Sie es aus der Quelle erstellen)
Ich hatte dasselbe Problem. Versuchen Sie, nur eine einzelne Build-Variante anzugeben (z. B. "variant = Freigabe link = shared runtime-link = shared")
Tags und Links c++ mingw cross-compiling