bjam runtime-link= statisch
Frage
Ich versuche, so zu kompilieren, dass der Exec statisch mit gcc
verknüpft ist.Ich nahm an, dass das Ausführen von bjam link=static runtime-link=static
den Trick machen sollte?
Als ich das versuchte, bekam ich folgende Fehler wie:
...failed gcc.link TGT/bin/gcc-4.5.1/debug/link-static/runtime-link-static/datagen...
gcc.compile.c++ TGT/bin/gcc-4.5.1/release/link-static/runtime-link-static/base_data_gen.o
gcc.link TGT/bin/gcc-4.5.1/release/link-static/runtime-link-static/datagen
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
Diese kommen nicht, wenn ich bjam link=static
ausführe.
Bitte beraten?
Lösung
Ich glaube, dass libstdc ++ absichtlich nicht statisch verknüpft ist.Dies wird von vielen als gefährlich angesehen (obwohl ich keinen guten Grund gehört habe).Ich glaube nicht, dass es eine einfache Flagge gibt, die Sie hinzufügen können.Für das gcc-Toolset würden Sie so etwas wie hinzufügen
-static-libgcc -Wl,-Bstatic -lstdc++
zu Ihren cxxflags für Ihre Build-Variante.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow