Kreuzkompilierung für Windows unter Linux

7

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?

Aktualisieren 1

Folgt @ Lukes Empfehlung Ich jetzt gcc-mingw toolset. Jetzt sehen meine Bauanleitungen so aus:

%Vor%

Was zu folgenden Fehlern führt:

%Vor%

Update 2

Ich habe auch versucht, gcc-mingw in der user-config.jam -Datei anzugeben. Dann sehen meine Bauanleitungen so aus:

%Vor%

Was zu:

führt %Vor%

Update 3

Angabe von g++-mingw in der user-config.jam -Datei:

%Vor%

... führt zum selben Fehler.

    
StackedCrooked 23.03.2011, 20:34
quelle

6 Antworten

11

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).

    
Seppo Enarvi 28.08.2014 11:58
quelle
3

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!

    
Congelli501 29.04.2012 15:59
quelle
2

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.

    
ejgottl 10.08.2012 19:10
quelle
1

Nach diesem sieht es so aus, als ob Sie das verwenden sollten %Code%. Sie haben toolset=gcc-mingw .

    
Luke 23.03.2011 20:46
quelle
1

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)

    
rubenvb 23.03.2011 21:20
quelle
1

Ich hatte dasselbe Problem. Versuchen Sie, nur eine einzelne Build-Variante anzugeben (z. B. "variant = Freigabe link = shared runtime-link = shared")

    
Scott Merritt 21.12.2011 20:23
quelle

Tags und Links